home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1995 April / Internet Tools.iso / news / readers / nnr / updates.vers131.Z / updates.vers131
Encoding:
Text File  |  1993-01-11  |  245.8 KB  |  3,109 lines

  1. :READ  GNNRT    EXEC     C1 UPDTS  05/10/92 11:12:21                            
  2. /**/                                                                            
  3. arg cntrl                                                                       
  4. if cntrl = '' then cntrl='RXTCP'                                                
  5. 'execupdt nnr ( ctl' cntrl 'nocomments'                                         
  6. 'execupdt nnr$xedi xedit ( ctl' cntrl 'nocomments'                              
  7. 'execupdt nnr$arti xedit ( ctl' cntrl 'nocomments'                              
  8. 'execupdt nnr$note xedit ( ctl' cntrl 'nocomments'                              
  9. 'execupdt nnr$pref xedit ( ctl' cntrl 'nocomments'                              
  10. 'erase * updlog a'                                                              
  11. 'erase * updates a'                                                             
  12. exit                                                                            
  13. :READ  GNNRX    EXEC     C1 UPDTS  05/10/92 11:12:21                            
  14. /**/                                                                            
  15. arg cntrl                                                                       
  16. if cntrl = '' then cntrl='RXSOC'                                                
  17. 'execupdt nnr ( ctl' cntrl 'nocomments'                                         
  18. 'execupdt nnr$xedi xedit ( ctl' cntrl 'nocomments'                              
  19. 'execupdt nnr$arti xedit ( ctl' cntrl 'nocomments'                              
  20. 'execupdt nnr$note xedit ( ctl' cntrl 'nocomments'                              
  21. 'execupdt nnr$pref xedit ( ctl' cntrl 'nocomments'                              
  22. 'erase * updlog a'                                                              
  23. 'erase * updates a'                                                             
  24. exit                                                                            
  25. :READ  MITRE    LICENSE  C1 UPDTS  08/03/92 14:24:10                            
  26. The MITRE Corporation 08/03/92                                                  
  27.                                                                                 
  28.                          GENERAL PUBLIC LICENSE                                 
  29.                                                                                 
  30.                                                                                 
  31. The MITRE Corporation provides this software to you without charge.             
  32. It may be reproduced by you within the United States of America                 
  33. provided all copyright notices are reproduced.  It cannot be made               
  34. available to foreign governments unless done in accordance with                 
  35. export control laws.                                                            
  36.                                                                                 
  37. This material may be reproduced by or for U. S. Government pursuant             
  38. to the copyright license under the clause DFARS 252.227-7013.                   
  39.                                                                                 
  40. This software is provided "AS IS" and no warranties, expressed or               
  41. implied, including but not limited to the implied warranties of                 
  42. merchantability and fitness for a particular purpose, are made by The           
  43. MITRE Corporation, it's officers, agents or employees.  You agree to            
  44. indemnify and hold harmless The MITRE Corporation, it's officers,               
  45. agents and employees from any and all costs and liability to third              
  46. parties which will arise out of your use for this software                      
  47.                                                                                 
  48. :READ  NNR      AUXLCL   C1 UPDTS  05/10/92 11:16:43                            
  49. SITEFIX  * local configuration parameters go in sitefix                         
  50. :READ  NNR      AUXRXS   C1 UPDTS  08/03/92 14:23:10                            
  51. LICENSE  * new MITRE license agreement                                          
  52. VERS131  * set version banner                                                   
  53. FX131S3  * optionally use nnr in conjunction with nnrlist (via STATIC)          
  54. VERS130  * set version banner                                                   
  55. HISTORY                                                                         
  56. :READ  NNR      AUXRXT   C1 UPDTS  07/26/92 11:49:05                            
  57. RXT131   * set version banner                                                   
  58. * RXT130   * set version banner                                                 
  59. :READ  NNR      FX131S3  C2 UPDTS  05/30/92 10:51:12                            
  60. ./ I 00162000          $ 162500 500                   05/30/92 10:51:12         
  61.  'GLOBALV SET STATIC 0'                                                 00157000
  62. :READ  NNR      HELPCMS  C1 UPDTS  10/29/92 12:09:02                            
  63. .cm NNR HELPCMS                                                                 
  64. .fo off                                                                         
  65. .cs 1 on                                                                        
  66. NNR - INVOKE Network News Reader                                                
  67.                                                                                 
  68. .cs 1 off                                                                       
  69. .cs 2 on                                                                        
  70. The format of the NNR command is:                                               
  71.                                                                                 
  72.     +------+-------------------------------------------------------  +          
  73.     |      |                                                         |          
  74.     | NNR  |  << Argument > ( Options >                              |          
  75.     |      |                                                         |          
  76.     |      |  Where the argument may be a single news group          |          
  77.     |      |  in the form "News.Group.Ext" or "p_s" which            |          
  78.     |      |  delivers you to your Personal_Subscriptions or         |          
  79.     |      |  "p_{}" (where {} is any Personal HLI) which            |          
  80.     |      |  delivers you the specified Personal HLI.               |          
  81.     |      |                                                         |          
  82.     |      |                                                         |          
  83.     |      |  Where the options are:                                 |          
  84.     |      |                                                         |          
  85.     |      |    +               +   defaults:                        |          
  86.     |      |    | ARTICLES nnn  |     300                            |          
  87.     |      |    | HEADERS YES/NO|     yes                            |          
  88.     |      |    | NEWS   ALL/NEW|     new                            |          
  89.     |      |    | DAYSBACK nn   |      7                             |          
  90.     |      |    | LINES nnnn    |    1500                            |          
  91.     |      |    | LOG/NOLOG     |     log                            |          
  92.     |      |    | POST          |     N/A                            |          
  93.     |      |    | IPADDR addr   |    System Default                  |          
  94.     |      |    +               +                                    |          
  95.     |      |                                                         |          
  96.     +------+---------------------------------------------------------+          
  97.                                                                                 
  98. .cs 2 off                                                                       
  99. .cs 3 on                                                                        
  100.                                                                                 
  101. NNR PARAMETERS                                                                  
  102.                                                                                 
  103.     NNR will take a news group as an argument.                                  
  104.                                                                                 
  105. GENERAL NNR OPTIONS                                                             
  106.                                                                                 
  107. The following options are available to all users of the NNR command:            
  108.                                                                                 
  109.     ARTICLES -                                                                  
  110.          The default for the number of articles is 300. If you decide           
  111.          to use a number larger than this you may run out of virtual            
  112.          memory. The number of articles affects the behavior of the             
  113.          Header screen only. You have the option to read the article            
  114.          directly without the use of the Headers screen. This would             
  115.          start you at the first available article regardless of the             
  116.          number of articles. To override this default option you could          
  117.          type the following:                                                    
  118.                                                                                 
  119.          "NNR ( ARTICLES 50"                                                    
  120.                                                                                 
  121.          This will set the default for the Headers screen to the 50             
  122.          most recent articles. If you want more than 300 you may need           
  123.          to "DEFINE STORAGE 4M" and "IPL CMS" again.                            
  124.                                                                                 
  125.     HEADERS -                                                                   
  126.          This option is for those people who would rather not see all           
  127.          of the fields associated with the header material. The headers         
  128.          contain information related to the news group and the individual       
  129.          who posted the news. To override this you would type the               
  130.          following:                                                             
  131.                                                                                 
  132.          "NNR ( HEADERS NO"                                                     
  133.                                                                                 
  134.          Additionally, at the Article level, you may toggle between             
  135.          headers+body or body only using the PFK "HeadBody".                    
  136.                                                                                 
  137.     NEWS -                                                                      
  138.           The "NEWS" option is useful only when you specify a news              
  139.           group as an argument. "NEWS" with "ALL" will yield all articles       
  140.           for the specified group, "NEWS" with "NEW" will show only those       
  141.           articles new to you, based on the "Groups Read" file. You would       
  142.           type the following to get "ALL" the news ("NEW" is the default)       
  143.                                                                                 
  144.          "NNR news.announce.newusers ( NEWS ALL"                                
  145.                                                                                 
  146.           Please note that the news group in the above example is in            
  147.           lower case. All groups are case sensitive.                            
  148.                                                                                 
  149.     DAYSBACK -                                                                  
  150.           From time to time new groups get added to the server. The             
  151.           "daysback" option allows you to override the default window           
  152.           for the number of days back you examine new groups. The default       
  153.           number of days back is seven; you may go back as many as 30.          
  154.                                                                                 
  155.           There is a pseudo group associated with this phenomenon called        
  156.           "New_Groups_Since_mm/dd/yy" where mm/dd/yy will be the date           
  157.           from which we inventory the new groups. You would type the            
  158.           following to check the new groups 30 days back:                       
  159.                                                                                 
  160.           "NNR ( DAYSBACK 30"                                                   
  161.                                                                                 
  162.     LINES -                                                                     
  163.           The default for the number of lines per article is 1500. If you       
  164.           decide to use a number larger than this you may run out of virtual    
  165.           memory. Generally, you will find that the greater the number of lines 
  166.           specified, the more storage is required to display the article read   
  167.           (refer back to ARTICLES to see how to change storage).                
  168.                                                                                 
  169.           "NNR ( LINES 1500"                                                    
  170.                                                                                 
  171.     LOG/NOLOG -                                                                 
  172.           When posting an article, NNR stores a copy of your post in the        
  173.           NNRPMLOG NOTEBOOK. If you do not wish to keep a copy, specify         
  174.           the NOLOG option. This option may also be manipulated through the     
  175.           "U_Prefer" PFK on the SHLI/Groups screen.                             
  176.                                                                                 
  177.           "NNR ( NOLOG"                                                         
  178.                                                                                 
  179.     POST -                                                                      
  180.          This option will put you directly in the POST screen. You must         
  181.          have a valid group as an argument.                                     
  182.                                                                                 
  183.            "NNR misc.test ( POST"                                               
  184.                                                                                 
  185.          Please note that the news group in the above example is in lower       
  186.          case. All groups are case sensitive.                                   
  187.                                                                                 
  188.     IPADDR -                                                                    
  189.          NNR is generally configured to a preferred news server but             
  190.          occasionally it will be desirable to connect to other news             
  191.          servers. The IPADDR option will allow you to override the              
  192.          default IP address for the preferred server.                           
  193.                                                                                 
  194.             "NNR ( IPADDR 000.000.000.000"                                      
  195.                                                                                 
  196. GENERAL FLOW -                                                                  
  197.                                                                                 
  198.                                                                                 
  199.                           ----------                         -----------        
  200.                           |  NNR   |                         | NNR p_s |        
  201.                           ----------                         -----------        
  202.  ------------------------      |      -----------------           or            
  203.  | NNR group.ext ( POST |      |      | NNR group.ext |      -----------        
  204.  ------------------------      |      -----------------      | NNR p_{}|        
  205.            |              -----------         |              -----------        
  206.            |              |  PHLI   |         |                   |             
  207.            |              -----------         |                   |             
  208.            |                   |              |                   |             
  209.            |          -------------------     |                   |             
  210.            |          |All_News/New_News|     |                   |             
  211.            |          -------------------     |                   |             
  212.            |                   |              |                   |             
  213.        --------           -----------         |                   |             
  214.        | POST |           |  SHLI   |---------|-------------------|             
  215.        --------           -----------         |                                 
  216.                             |  |  |           |                                 
  217.               ---------------  |  ------------|---------------                  
  218.               |                |              |              |                  
  219.               |                |              |              |                  
  220.               |                |              |              |                  
  221.        ------------       ----------     -----------    ------------            
  222.        | ARTICLES |       |  POST  |     | HEADERS |    | U_PREFER |            
  223.        ------------       ----------     -----------    ------------            
  224.              |                              | | |                               
  225.  ----------  |  ----------                  | | |                               
  226.  |  POST  |-----|  MAIL  |                  | | |                               
  227.  ----------     ----------                  | | |                               
  228.                        ---------------------- | ------------------              
  229.                        |                      |                  |              
  230.                   ------------     ---------------------    ----------          
  231.                   | ARTICLES |     | SELECTED_ARTICLES |    |  POST  |          
  232.                   ------------     ---------------------    ----------          
  233.                        |                      |                                 
  234.                        ------------------------                                 
  235.                                    |                                            
  236.                        ----------  |  ----------                                
  237.                        |  POST  |-----|  MAIL  |                                
  238.                        ----------     ----------                                
  239.                                                                                 
  240. VARIOUS SCREEN DEFINITIONS                                                      
  241.                                                                                 
  242. PHLI/MAIN SCREEN                                                                
  243.                                                                                 
  244.  ** PHLI/Main Screen General                                                    
  245.                                                                                 
  246. To use this screen you simply move the cursor to the desired Primary            
  247. High Level Index (PHLI) and hit one of the Program Function Keys                
  248. (PFK).  The PHLI is the principal part of the name of a group.  All             
  249. groups with the same PHLI are related in some way.  For example                 
  250. "comp" represents all groups associated with computing.  Positioning            
  251. the cursor on top of "comp" and pressing a PFK will initiate some               
  252. action.  Depending on the PFK, you can read all the news, read only             
  253. the new news or exit back to CMS.                                               
  254.                                                                                 
  255. There are currently two special purpose PHLIs, Personal_Subscriptions           
  256. and New_Groups_Since_mm/dd/yy.  These are slightly different from the           
  257. other PHLIs since they are built by NNR and not directly related to             
  258. the server.  The Personal_Subscription PHLI is a collection of all              
  259. the groups you have subscribed to and New_Groups_Since_mm/dd/yy are             
  260. all those groups new to the server from the specified date.                     
  261.                                                                                 
  262.  ** PHLI/Main Screen PFKs                                                       
  263.                                                                                 
  264. PFK Help     - This display.                                                    
  265. PFK All_News - Access all the news that is available. Articles read are         
  266.                not remembered. Move cursor to desired topic and press           
  267.                All_News PFK.                                                    
  268. PFK Quit     - Exit NNR program.                                                
  269. PFK New_News - Access news that is new to you according to "Groups Read"        
  270.                file on your account. Articles read are remembered.              
  271. PFK Backward - Scrolls backward one screen.                                     
  272. PFK Forward  - Scrolls forward one screen.                                      
  273. PFK FullList - Access news that is new to you according to "Groups Read"        
  274.                file on your account. All groups are collected. Articles         
  275.                read are remembered.                                             
  276.                                                                                 
  277.  ** PHLI/Main Screen Commands                                                   
  278.                                                                                 
  279. PREFER - Display Preferences Screen                                             
  280. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  281.          to NNR. If your are using the RXSOCKET version you may use             
  282.          other TCPIP applications.                                              
  283. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  284.          current position to the command line.                                  
  285. TOP    - Operates like the Xedit command TOP, locates the first PHLI            
  286.          and displays the associated screen.                                    
  287. BOTtom - Operates like the Xedit command BOTTOM, locates the last PHLI          
  288.          and displays the associated screen.                                    
  289.                                                                                 
  290.                                                                                 
  291. SHLI/GROUPS SCREEN                                                              
  292.                                                                                 
  293.  ** SHLI/Groups Screen General                                                  
  294.                                                                                 
  295. To use this screen you simply move the cursor to the desired                    
  296. Secondary High Level Index (SHLI) and hit one of the Program Function           
  297. Keys (PFK).  The SHLI is better known as a group or a news group.               
  298. Each news group is comprised of articles.  The number of articles and           
  299. posting information accompanies each group.  You may check out a                
  300. particular group using the PFKs associated with this screen.                    
  301.                                                                                 
  302. You will notice that some of the groups are highlighted and some are            
  303. not.  A group becomes highlighted when you subscribe "Sub/UnS" or               
  304. read the group while in "New_News".  This highlighted group will                
  305. eventually appear in your Personal_Subscriptions group.                         
  306.                                                                                 
  307. The "Power" feature is used in conjunction with the "Articles" PFK.             
  308. When "Power" is ON you will be able to move through all the articles            
  309. in all the groups using only the "Next" PFK.  When "Power" is OFF you           
  310. will return to the SHLI/Group Screen after reading the last article             
  311. in each group.                                                                  
  312.                                                                                 
  313.  ** SHLI/Groups Screen PFKs                                                     
  314.                                                                                 
  315. PFK Help     - This display.                                                    
  316. PFK Articles - Access articles sequentially by article number. Starts with      
  317.                the first available article. Cursor position respected.          
  318. PFK Quit     - Exits this screen.                                               
  319. PFK Headers  - Preferred path to articles. Collects subject and other           
  320.                information for display. Cursor position respected.              
  321. PFK Post     - Initiates posting procedure. Only group passed to the            
  322.                posting screen. Cursor position respected.                       
  323. PFK Mark     - Mark the group as been read, zeros the article count.            
  324. PFK Backward - Scrolls backward one screen.                                     
  325. PFK Forward  - Scrolls forward one screen.                                      
  326. PFK Sub/UnS  - Subscribe or UnSubscribe to a news group.                        
  327. PFK UpdtGrp  - Updates the Group.                                               
  328. PFK Reduce   - Eliminate all groups with 0 articles from the display.           
  329. PFK Power    - Toggle between current Power setting. Initially OFF.             
  330.                                                                                 
  331.  ** SHLI/Groups Screen Commands                                                 
  332.                                                                                 
  333. PREFER - Display Preferences Screen                                             
  334. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  335.          to NNR. If your are using the RXSOCKET version you may use             
  336.          other TCPIP applications.                                              
  337. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  338.          current position to the command line.                                  
  339. UPDate - Inventories all groups associated with the current SHLI and            
  340.          displays the revised article count. Works like the "UpdtGrp"           
  341.          PFK but on all groups.                                                 
  342. TOP    - Operates like the Xedit command TOP, locates the first SHLI            
  343.          and displays the associated screen.                                    
  344. BOTtom - Operates like the Xedit command BOTTOM, locates the last SHLI          
  345.          and displays the associated screen.                                    
  346. /str   - Operates like the Xedit command Locate/, where "str" is any            
  347.          literal to be searched for. Case is ignored. Use "=" to                
  348.          continue search.                                                       
  349.                                                                                 
  350.                                                                                 
  351. HEADERS SCREEN                                                                  
  352.                                                                                 
  353.  ** Headers Screen General                                                      
  354.                                                                                 
  355. To use this screen you simply move the cursor to the desired article            
  356. and use a Program Function Key (PFK) to initiate some action, see the           
  357. PFK descriptions.  Replacing the "." with (L)og, (M)ail, (P)rint or             
  358. (R)ead and using the Selected PFK will initiate bulk activities.  For           
  359. example, replacing the "." with an "P" for several articles and                 
  360. pressing the "Selected" PFK will Print all the marked articles.  The            
  361. "*" signifies you have read this article during the current session             
  362. or a previous session and the "@" marks articles where some                     
  363. "Selected" action has taken place.                                              
  364.                                                                                 
  365. On the Headers Screen in the upper left corner you will notice "R 0"            
  366. as an initial setting.  This is a "Reduce" indicator, which counts              
  367. the number of times you have issued the Reduce PFK.  Use the Quit PFK           
  368. to bring it back to zero.                                                       
  369.                                                                                 
  370.  ** Headers Screen PFKs                                                         
  371.                                                                                 
  372. PFK Help     - This display.                                                    
  373. PFK Article  - Read a specific article. Cursor position respected.              
  374. PFK Quit     - Exit Headers screen.                                             
  375. PFK Selected - Mark each article at the "." with an "x". Mark as many as        
  376.                desired, then press the Selected PFK.                            
  377. PFK Post     - Initiates posting procedure. The group and subject are           
  378.                passed to the posting screen. Cursor position respected.         
  379. PFK Mrk2Here - Marks all articles as read, up to the cursor position or         
  380.                when cursor is on Command line, ALL articles are marked.         
  381. PFK Backward - Scrolls backward one screen.                                     
  382. PFK Forward  - Scrolls forward one screen.                                      
  383. PFK Thread   - Collects articles based on subject.                              
  384. PFK Reduce   - Eliminates read articles, "reduces" the number displayed.        
  385. PFK Mrk/UMrk - Mark Article/UnMark Article toggle.                              
  386. PFK NxtGroup - Moves to the next group in the SHLI list.                        
  387.                                                                                 
  388.  ** Headers Screen Commands                                                     
  389.                                                                                 
  390. PREFER - Display Preferences Screen                                             
  391. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  392.          to NNR. If your are using the RXSOCKET version you may use             
  393.          other TCPIP applications.                                              
  394. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  395.          current position to the command line.                                  
  396. THRead - Thread expects a literal string as an argument. for example,           
  397.          try "THR abc", this will display all articles with the string          
  398.          "abc","ABC" or any other combination.                                  
  399. NGroup - Moves to the next group in the SHLI list (with articles).              
  400. PGroup - Moves to the previous group in the SHLI list (with articles).          
  401. TOP    - Operates like the Xedit command TOP, locates the first Header          
  402.          and displays the associated screen.                                    
  403. BOTtom - Operates like the Xedit command BOTTOM, locates the last Header        
  404.          and displays the associated screen.                                    
  405. /str   - Operates like the Xedit command Locate/, where "str" is any            
  406.          literal to be searched for. Case is ignored. Use "=" to cont.          
  407. SORT   - Toggles between sorted "Subject" and default server order              
  408.                                                                                 
  409.                                                                                 
  410. ARTICLE SCREEN                                                                  
  411.                                                                                 
  412.  ** Article Screen General                                                      
  413.                                                                                 
  414. There are three ways to get to this screen.  The first is by                    
  415. selecting the "Articles" PFK for a specific group from the SHLI/Group           
  416. screen.  The second and third are via the Headers screen using the              
  417. "Article" PFK and the "Selected" PFK, see the respective PFK help for           
  418. each of the screens mentioned.                                                  
  419.                                                                                 
  420. Once you have succeeded in getting to this screen you may page through          
  421. the article (PFK Forward, PFK Backward) and range through all the               
  422. available articles (PFK Next, PFK Previous).  There is one                      
  423. Preferences setting that limits the number of "Lines" NNR will allow,           
  424. you may set this accordingly.                                                   
  425.                                                                                 
  426. From the Article Screen you may also "Post", "Print" or "Log" a                 
  427. article, please see the PFK description for this screen for details.            
  428.                                                                                 
  429.  ** Article Screen PFKs                                                         
  430.                                                                                 
  431. PFK Help     - This display.                                                    
  432. PFK Next     - Read the next article in the sequence.                           
  433. PFK Quit     - Exit Article screen.                                             
  434. PFK Previous - Read the previous article in the sequence.                       
  435. PFK PostMail - Initiates posting procedure. The group and subject are           
  436.                passed to the posting screen along with the article.             
  437. PFK HeadBody - Toggles between headers+body and body only.                      
  438. PFK Backward - Scrolls backward one screen.                                     
  439. PFK Forward  - Scrolls forward one screen.                                      
  440. PFK Print    - Sends the article to the virtual printer.                        
  441. PFK Rot13    - Translates screen using a character rotation method.             
  442. PFK Log      - Logs article in NNRLOG NOTEBOOK.                                 
  443. PFK NxtGroup - Moves to the next group in the SHLI list.                        
  444.                                                                                 
  445.  ** Article Screen Commands                                                     
  446.                                                                                 
  447. PREFER - Display Preferences Screen                                             
  448. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  449.          to NNR. If your are using the RXSOCKET version you may use             
  450.          other TCPIP applications.                                              
  451. NGroup - Moves to the next group in the SHLI list (with articles).              
  452. PGroup - Moves to the previous group in the SHLI list (with articles).          
  453. LOG    - "LOG xyz" will log the current article into a notebook by the          
  454.          name of "XYZ NOTEBOOK". If the header information is available         
  455.          this article may be manipulated with Rice Mail/Mailbook.               
  456.                                                                                 
  457.                                                                                 
  458. PREFERENCES SCREEN                                                              
  459.                                                                                 
  460.  ** Preferences Screen General                                                  
  461.                                                                                 
  462. The User Preferences Screen attempts to make NNR more useful in                 
  463. irregular situations (normally none of the User configurable                    
  464. parameters should need changing).  The Header Screen option is                  
  465. changed by the Rotate PFK; the other values must be filled in.  Once            
  466. any of the values are changed they will retain their setting for the            
  467. duration of the NNR session or until changed again.  The values will            
  468. be reset to the default on the next invocation of NNR.                          
  469.                                                                                 
  470. Articles/Group - used to determine the upper limit for the number of            
  471.   articles collected on "Headers Screen". Default is 300 articles.              
  472. Lines/Article - used to determine the upper limit for the number of lines       
  473.   collected for an article on "Article Screen". Default is 1500 lines.          
  474. Log/NoLog - you may switch between logging all outgoing mail/post and           
  475.   not logging them. The default is "YES", log them.                             
  476. Add Pseudo PHLI - used in conjunction with the Sub/UnS PFK on the SHLI          
  477.   screen. The default is OFF, change this to any name and use the               
  478.   Sub/UnS PFK to add groups to the newly defined PHLI.                          
  479.                                                                                 
  480.  ** Preferences Screen PFKs                                                     
  481.                                                                                 
  482. PFK Help     - This display.                                                    
  483. PFK Quit     - Exit Preferences screen.                                         
  484. PFK Rotate   - Range through possible configuration values.                     
  485.                                                                                 
  486.  ** Preferences Screen PFKs                                                     
  487.                                                                                 
  488. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  489.          to NNR. If your are using the RXSOCKET version you may use             
  490.          other TCPIP applications.                                              
  491. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  492.          current position to the command line.                                  
  493.                                                                                 
  494.                                                                                 
  495. POST(1) SCREEN                                                                  
  496.                                                                                 
  497.  ** POST(1) Screen General                                                      
  498.                                                                                 
  499. This is a simple mailer/poster.  It is comprised of two screens, Post           
  500. Screen(1) and Post Screen(2).  This screen will be encountered when             
  501. coming from the Article screen or when NNR detects that there is an             
  502. unfinished article that was started sometime earlier.  From this                
  503. screen you determine the course of action, you may direct the article           
  504. to a colleague, follow-up to the news server or reply back to the               
  505. sender.                                                                         
  506.                                                                                 
  507. On the SHLI/Group screen you will see an indicator of whether posting           
  508. is an option or not (y=posting, m=moderated, n=noposting).  There are           
  509. groups available for testing this activity; "alt.test" and                      
  510. "misc.test" are two such groups.                                                
  511.                                                                                 
  512. The second screen you encounter will give you an opportunity to                 
  513. change some of the captured information and in the case of forwarding           
  514. the article you will be called upon to type in the recipient's                  
  515. electronic address.                                                             
  516.                                                                                 
  517.  ** POST(1) Screen PFKs                                                         
  518.                                                                                 
  519. PFK Help     - This Display.                                                    
  520. PFK Quit     - Exit Post(1) screen.                                             
  521. PFK Resume   - Allows you to continue an existing POSTing. This is              
  522.                independent of the current article.                              
  523. PFK Followup - Newly edited information to be sent back to the server           
  524.                for POSTing.                                                     
  525. PFK Mail     - Newly edited information to be directed to the local             
  526.                electronic mail system (must fill in recipient).                 
  527. PFK Reply    - Newly edited information to be directed to the creator           
  528.                of an article (directed back to the "From:").                    
  529. PFK ERASE    - Eliminate the previously edited POSTing to operate on            
  530.                the current article.                                             
  531.                                                                                 
  532.  ** POST(1) Screen Commands                                                     
  533.                                                                                 
  534. PREFER - Display Preferences Screen                                             
  535. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  536.          to NNR. If your are using the RXSOCKET version you may use             
  537.          other TCPIP applications.                                              
  538. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  539.          current position to the command line.                                  
  540. ERASE  - Eliminate the previously edited POSTing to operate on the              
  541.          current article.                                                       
  542.                                                                                 
  543.                                                                                 
  544. POST(2) SCREEN                                                                  
  545.                                                                                 
  546.  ** POST(2) Screen General                                                      
  547.                                                                                 
  548. The Post Screen(2) allows you to modify any of the highlighted                  
  549. fields.  It is highly recommended that no field be left blank; in               
  550. some cases the MAIL or POST will fail.  When sending MAIL use the               
  551. following formats for the "To:" header (nicknames are supported):               
  552.                                                                                 
  553.       userid   *or*   userid@nodeid   *or*   userid@nodeid.domain.ext           
  554.                (* incorporate personal names as follows *)                      
  555.    Firstname Lastname <userid@nodeid.domain.ext>                                
  556.                        userid@nodeid.domain.ext  (Firstname Lastname)           
  557.                                                                                 
  558. Bear in mind when you post an article that you are representing both            
  559. yourself and your organization to a potentially large audience.                 
  560.                                                                                 
  561.  ** POST(2) Screen PFKs                                                         
  562.                                                                                 
  563. PFK Help     - This Display.                                                    
  564. PFK Quit     - Exit Post(2) screen.                                             
  565. PFK Edit     - Establishes a limited XEDIT session. When you come               
  566.                from the Article screen you will see the entire article          
  567.                is supplied.                                                     
  568. PFK Send     - Will POST/MAIL the results of the edit session. You will         
  569.                receive confirmation that your contribution was                  
  570.                successful.                                                      
  571.                                                                                 
  572.  ** POST(2) Screen Commands                                                     
  573.                                                                                 
  574. PREFER - Display Preferences Screen                                             
  575. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  576.          to NNR. If your are using the RXSOCKET version you may use             
  577.          other TCPIP applications.                                              
  578. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  579.          current position to the command line.                                  
  580.                                                                                 
  581.                                                                                 
  582.                                                                                 
  583. USAGE NOTES                                                                     
  584.                                                                                 
  585.   1.  For a complete discussion of the NNR command, consult the NNR User's      
  586.       Guide.                                                                    
  587.                                                                                 
  588.   2.  There is also a Guide for USENET by the name USENET User Guide for        
  589.       Mitre. This is a compilation of articles taken from the news group        
  590.       "news.announce.newusers".                                                 
  591.                                                                                 
  592. EXAMPLES                                                                        
  593.                                                                                 
  594. Sample NNR command invocations are shown below.                                 
  595.                                                                                 
  596.          "NNR"                                                                  
  597.          "NNR news.announce.newusers"                                           
  598.          "NNR news.announce.newusers ( NEWS ALL"                                
  599.          "NNR p_s ( NEWS ALL"                                                   
  600.          "NNR p_MyVMhli ( NEWS NEW"                                             
  601.          "NNR ( ARTICLES 50"                                                    
  602.          "NNR ( HEADERS NO"                                                     
  603.          "NNR ( DAYSBACK 30"                                                    
  604.          "NNR ( ARTICLES 300 HEADERS YES"                                       
  605.          "NNR ( ARTICLES 300 LINES 1500"                                        
  606.          "NNR ( LINES 1500 NOLOG"                                               
  607.          "NNR news.announce.newusers ( HEADERS NO"                              
  608.                                                                                 
  609. .cs 3 off                                                                       
  610. .CM File generated by m21816 at mbvm                                            
  611. :READ  NNR      HISTORY  C2 UPDTS  08/03/92 14:22:45                            
  612. ./ R 00011000 00026000 $ 18990 100                    05/09/92 22:20:43         
  613. /* 05/09/92 S_1.3.0 (level set S_1.2.2e)                              */        
  614. /*       * optionally use nnr in conjunction with nnrlist (via STATIC)*/        
  615. /* 07/26/92  version *_1.3.1                                          */        
  616. /* 08/03/92  add GENERAL PUBLIC LICENSE                               */        
  617. :READ  NNR      LICENSE  C2 UPDTS  12/15/92 06:14:38                            
  618. ./ R 00028000 00043000 $ 28590 590                    08/03/92 14:21:13         
  619. /**                                                                             
  620.                 Copyright (C) 1991,1992  The MITRE Corporation                  
  621.                                                                                 
  622.                          GENERAL PUBLIC LICENSE                                 
  623.                                                                                 
  624. The MITRE Corporation provides this software to you without charge.             
  625. It may be reproduced by you within the United States of America                 
  626. provided all copyright notices are reproduced.  It cannot be made               
  627. available to foreign governments unless done in accordance with                 
  628. export control laws.                                                            
  629.                                                                                 
  630. This material may be reproduced by or for U. S. Government pursuant             
  631. to the copyright license under the clause DFARS 252.227-7013.                   
  632.                                                                                 
  633. This software is provided "AS IS" and no warranties, expressed or               
  634. implied, including but not limited to the implied warranties of                 
  635. merchantability and fitness for a particular purpose, are made by The           
  636. MITRE Corporation, it's officers, agents or employees.  You agree to            
  637. indemnify and hold harmless The MITRE Corporation, it's officers,               
  638. agents and employees from any and all costs and liability to third              
  639. parties which will arise out of your use for this software                      
  640.                                                                                 
  641. **/                                                                             
  642. :READ  NNR      RXT130   C2 UPDTS  05/10/92 11:12:22                            
  643. ./ R 00148490          $ 148680 190                   05/09/92 22:28:21         
  644.  'GLOBALV SET VERSION R_1.3.0'                                          00148490
  645. ./ R 00275490          $ 275680 190                   05/09/92 22:28:21         
  646. say 'NNR version R_1.3.0, Copyright (C) 1991,1992 Paul J. Campbell'     00275490
  647. :READ  NNR      RXT131   C2 UPDTS  12/15/92 06:14:08                            
  648. ./ R 00148680          $ 148770 90                    07/26/92 10:12:27         
  649.  'GLOBALV SET VERSION R_1.3.1'                                          00148680
  650. ./ R 00275680          $ 275770 90                    07/26/92 10:12:27         
  651. say 'NNR version R_1.3.1, Copyright (C) 1991,1992 The MITRE Corporation'00275680
  652. :READ  NNR      SAMPLEFX C2 UPDTS  05/10/92 11:12:22                            
  653. ./ R 00056000          $ 56490 490                    05/09/92 22:31:25         
  654. 'EXEC LINKPROD TCPIP'                                                           
  655. ./ R 00143000 00146000 $ 143790 790                   05/09/92 22:31:25         
  656.  'GLOBALV SETL THISNODE Yournode.Domain.Ext'                                    
  657.  'GLOBALV SETL ORGANIZATION Your Organization'                                  
  658.  'GLOBALV SETL MAILER XMAILER'                                                  
  659.  'GLOBALV SETL IPADDR 000.000.000.000'                                          
  660. ./ R 00193000          $ 193490 490                   05/09/92 22:31:25         
  661.   'XEDIT $NNTP$ $LISTS$ S (PROFILE NNR$XEDI'                                    
  662. ./ R 00253000          $ 253490 490                   05/09/92 22:31:25         
  663.               'EXEC DPRINT NET_NEWS _OUTPUT_ ( CC YES'                          
  664. :READ  NNR      VERS130  C2 UPDTS  05/10/92 11:12:22                            
  665. ./ R 00148000          $ 148490 490                   05/09/92 22:27:11         
  666.  'GLOBALV SET VERSION S_1.3.0'                                          00148000
  667. ./ R 00275000          $ 275490 490                   05/09/92 22:27:11         
  668. say 'NNR version S_1.3.0, Copyright (C) 1991,1992 Paul J. Campbell'     00275000
  669. :READ  NNR      VERS131  C2 UPDTS  12/15/92 06:08:44                            
  670. ./ R 00148490          $ 148680 190                   07/26/92 10:10:21         
  671.  'GLOBALV SET VERSION S_1.3.1'                                          00148490
  672. ./ R 00275490          $ 275680 190                   07/26/92 10:10:21         
  673. say 'NNR version S_1.3.1, Copyright (C) 1991,1992 The MITRE Corporation'00275490
  674. :READ  NNR$ARTI AUXRXS   C1 UPDTS  08/03/92 14:23:10                            
  675. LICENSE  * new MITRE license agreement                                          
  676. FX131S6  * expand help to include general screen/ pfk screen/cmd screen         
  677. HISTORY                                                                         
  678. :READ  NNR$ARTI FX131S6  C1 UPDTS  07/05/92 12:05:29                            
  679. ./ I 00199000          $ 199200 200                   07/05/92 12:05:29         
  680.    Else If Abbrev('SUBSET',translate(line),3) Then                      00199200
  681.      Call Subset                                                        00199400
  682.    Else If Abbrev('PREFERENCE',translate(line),6) Then                  00199600
  683.      Call Prefer                                                        00199800
  684. ./ I 00202000          $ 202070 70                    07/05/92 12:05:29         
  685. /*-----------------------------------------------------------------*/   00202070
  686. /* Routine to handle SUBSET command.                               */   00202140
  687. /*-----------------------------------------------------------------*/   00202210
  688. Subset:                                                                 00202280
  689.    say 'Type "RETURN" to resume NNR.'                                   00202350
  690.    'CMS'                                                                00202420
  691. Return                                                                  00202490
  692. /*-----------------------------------------------------------------*/   00202560
  693. /* Routine to handle PREFER command.                               */   00202630
  694. /*-----------------------------------------------------------------*/   00202700
  695. Prefer:                                                                 00202770
  696.    Address COMMAND 'XEDIT USER PREFS S (PROFILE NNR$PREF'               00202840
  697. Return                                                                  00202910
  698. ./ I 00326000          $ 326500 500                   07/05/92 12:05:29         
  699. row=lscreen.1; col=7                                                    00326500
  700. ./ R 00328000          $ 328490 490                   07/05/92 12:05:29         
  701. start=5*(18*3)+1                                                        00328490
  702. ./ I 00361000          $ 361050 50                    07/05/92 12:05:29         
  703.         else If Line=4 then                                             00361050
  704.           do                                                            00361100
  705.             HELPSCR.=''                                                 00361150
  706.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       00361200
  707.                              start '(FINI STEM HELPSCR.'                00361250
  708.           end                                                           00361300
  709.         else If Line=5 then                                             00361350
  710.           do                                                            00361400
  711.             HELPSCR.=''                                                 00361450
  712.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       00361500
  713.                              start+18 '(FINI STEM HELPSCR.'             00361550
  714.           end                                                           00361600
  715.         else If Line=6 then                                             00361650
  716.           do                                                            00361700
  717.             HELPSCR.=''                                                 00361750
  718.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       00361800
  719.                              start+36 '(FINI STEM HELPSCR.'             00361850
  720.           end                                                           00361900
  721. ./ R 00391000 00393000 $ 391690 690                   07/05/92 12:05:29         
  722.                                ||' 4= General  ',                       00391690
  723.                                ||' 5= PFKs     ',                       00392380
  724.                                ||' 6= Commands'                         00393070
  725. ./ R 00406000          $ 406490 490                   07/05/92 12:05:29         
  726.    'Cursor screen' row col                                              00406490
  727. :READ  NNR$ARTI HISTORY  C1 UPDTS  08/03/92 14:22:45                            
  728. ./ R 00007000 00027000 $ 16990 100                    05/10/92 09:45:29         
  729. /* 05/09/92 S_1.3.0 (level set S_1.2.2e)                              */        
  730. /*       * expand help to include general, pfk and cmd screen         */        
  731. /* 07/26/92  version *_1.3.1                                          */        
  732. /* 08/03/92  add GENERAL PUBLIC LICENSE                               */        
  733. :READ  NNR$ARTI LICENSE  C1 UPDTS  12/15/92 06:15:28                            
  734. ./ R 00029000 00044000 $ 29590 590                    08/03/92 14:18:29         
  735. /**                                                                             
  736.                 Copyright (C) 1991,1992  The MITRE Corporation                  
  737.                                                                                 
  738.                          GENERAL PUBLIC LICENSE                                 
  739.                                                                                 
  740. The MITRE Corporation provides this software to you without charge.             
  741. It may be reproduced by you within the United States of America                 
  742. provided all copyright notices are reproduced.  It cannot be made               
  743. available to foreign governments unless done in accordance with                 
  744. export control laws.                                                            
  745.                                                                                 
  746. This material may be reproduced by or for U. S. Government pursuant             
  747. to the copyright license under the clause DFARS 252.227-7013.                   
  748.                                                                                 
  749. This software is provided "AS IS" and no warranties, expressed or               
  750. implied, including but not limited to the implied warranties of                 
  751. merchantability and fitness for a particular purpose, are made by The           
  752. MITRE Corporation, it's officers, agents or employees.  You agree to            
  753. indemnify and hold harmless The MITRE Corporation, it's officers,               
  754. agents and employees from any and all costs and liability to third              
  755. parties which will arise out of your use for this software                      
  756.                                                                                 
  757. **/                                                                             
  758. :READ  NNR$NOTE AUXRXS   C1 UPDTS  08/03/92 14:23:09                            
  759. LICENSE  * new MITRE license agreement                                          
  760. HISTORY                                                                         
  761. :READ  NNR$NOTE HISTORY  C2 UPDTS  08/03/92 14:22:45                            
  762. ./ R 00006000 00016000 $ 10990 100                    05/10/92 09:48:31         
  763. /* 05/09/92 S_1.3.0 (level set S_1.2.2e)                              */        
  764. /* 08/03/92  add GENERAL PUBLIC LICENSE                               */        
  765. :READ  NNR$NOTE LICENSE  C2 UPDTS  12/15/92 06:16:36                            
  766. ./ R 00018000 00033000 $ 18590 590                    08/03/92 14:20:25         
  767. /**                                                                             
  768.                 Copyright (C) 1991,1992  The MITRE Corporation                  
  769.                                                                                 
  770.                          GENERAL PUBLIC LICENSE                                 
  771.                                                                                 
  772. The MITRE Corporation provides this software to you without charge.             
  773. It may be reproduced by you within the United States of America                 
  774. provided all copyright notices are reproduced.  It cannot be made               
  775. available to foreign governments unless done in accordance with                 
  776. export control laws.                                                            
  777.                                                                                 
  778. This material may be reproduced by or for U. S. Government pursuant             
  779. to the copyright license under the clause DFARS 252.227-7013.                   
  780.                                                                                 
  781. This software is provided "AS IS" and no warranties, expressed or               
  782. implied, including but not limited to the implied warranties of                 
  783. merchantability and fitness for a particular purpose, are made by The           
  784. MITRE Corporation, it's officers, agents or employees.  You agree to            
  785. indemnify and hold harmless The MITRE Corporation, it's officers,               
  786. agents and employees from any and all costs and liability to third              
  787. parties which will arise out of your use for this software                      
  788.                                                                                 
  789. **/                                                                             
  790. :READ  NNR$PREF AUXRXS   C1 UPDTS  08/03/92 14:23:09                            
  791. LICENSE  * new MITRE license agreement                                          
  792. FX131S6  * expand help to include general screen/ pfk screen/cmd screen         
  793. HISTORY                                                                         
  794. :READ  NNR$PREF FX131S6  C2 UPDTS  07/05/92 12:12:07                            
  795. ./ I 00172000          $ 172300 300                   07/05/92 12:12:07         
  796.       Else If Abbrev('SUBSET',line,3) Then                              00172300
  797.         Call Subset                                                     00172600
  798. ./ I 00184000          $ 184100 100                   07/05/92 12:12:07         
  799. /*-----------------------------------------------------------------*/   00184100
  800. /* Routine to handle SUBSET command.                               */   00184200
  801. /*-----------------------------------------------------------------*/   00184300
  802. Subset:                                                                 00184400
  803.    say 'Type "RETURN" to resume NNR.'                                   00184500
  804.    'CMS'                                                                00184600
  805. Return                                                                  00184700
  806. ./ I 00294000          $ 294500 500                   07/05/92 12:12:07         
  807. row=lscreen.1; col=7                                                    00326500
  808. ./ R 00296000          $ 296490 490                   07/05/92 12:12:07         
  809. start=6*(18*3)+1                                                        00296490
  810. ./ I 00329000          $ 329050 50                    07/05/92 12:12:07         
  811.         else If Line=4 then                                             00329050
  812.           do                                                            00329100
  813.             HELPSCR.=''                                                 00329150
  814.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       00329200
  815.                              start '(FINI STEM HELPSCR.'                00329250
  816.           end                                                           00329300
  817.         else If Line=5 then                                             00329350
  818.           do                                                            00329400
  819.             HELPSCR.=''                                                 00329450
  820.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       00329500
  821.                              start+18 '(FINI STEM HELPSCR.'             00329550
  822.           end                                                           00329600
  823.         else If Line=6 then                                             00329650
  824.           do                                                            00329700
  825.             HELPSCR.=''                                                 00329750
  826.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       00329800
  827.                              start+36 '(FINI STEM HELPSCR.'             00329850
  828.           end                                                           00329900
  829. ./ R 00359000 00361000 $ 359690 690                   07/05/92 12:12:07         
  830.                                ||' 4= General  ',                       00359690
  831.                                ||' 5= PFKs     ',                       00360380
  832.                                ||' 6= Commands'                         00361070
  833. ./ R 00374000          $ 374490 490                   07/05/92 12:12:07         
  834.    'Cursor screen' row col                                              00406490
  835. :READ  NNR$PREF HISTORY  C2 UPDTS  08/03/92 14:22:45                            
  836. ./ R 00006000 00013000 $ 9990 100                     05/10/92 09:46:54         
  837. /* 05/09/92 S_1.3.0 (level set S_1.2.2e)                              */        
  838. /*       * expand help to include general, pfk and cmd screen         */        
  839. /* 07/26/92  version *_1.3.1                                          */        
  840. /* 08/03/92  add GENERAL PUBLIC LICENSE                               */        
  841. :READ  NNR$PREF LICENSE  C2 UPDTS  12/15/92 06:19:16                            
  842. ./ R 00015000 00030000 $ 15590 590                    08/03/92 14:20:13         
  843. /**                                                                             
  844.                 Copyright (C) 1991,1992  The MITRE Corporation                  
  845.                                                                                 
  846.                          GENERAL PUBLIC LICENSE                                 
  847.                                                                                 
  848. The MITRE Corporation provides this software to you without charge.             
  849. It may be reproduced by you within the United States of America                 
  850. provided all copyright notices are reproduced.  It cannot be made               
  851. available to foreign governments unless done in accordance with                 
  852. export control laws.                                                            
  853.                                                                                 
  854. This material may be reproduced by or for U. S. Government pursuant             
  855. to the copyright license under the clause DFARS 252.227-7013.                   
  856.                                                                                 
  857. This software is provided "AS IS" and no warranties, expressed or               
  858. implied, including but not limited to the implied warranties of                 
  859. merchantability and fitness for a particular purpose, are made by The           
  860. MITRE Corporation, it's officers, agents or employees.  You agree to            
  861. indemnify and hold harmless The MITRE Corporation, it's officers,               
  862. agents and employees from any and all costs and liability to third              
  863. parties which will arise out of your use for this software                      
  864.                                                                                 
  865. **/                                                                             
  866. :READ  NNR$XEDI AUXRXS   C1 UPDTS  08/05/92 09:10:44                            
  867. *         07/26/92 version 1.3.1                                                
  868. LICENSE  * new MITRE license agreement                                          
  869. FX131SC  * add full list on PHLI                                                
  870. FX131SB  * miscellany, tweak previous fixes                                     
  871. FX131SA  * add P_PersonalHLI from the command line                              
  872. FX131S9  * add SORT command on Headers                                          
  873. FX131S8  * add TOP/BOTTOM/LOCATE on PHLI/SHLI/HEADERS                           
  874. FX131S7  * reduce overhead for articles read from shli                          
  875. FX131S6  * expand help to include general screen/ pfk screen/cmd screen         
  876. FX131S5  * add PREFERence call to command line on every screen                  
  877. FX131S4  * reduce shli screen (eliminate groups with 0 articles)                
  878. STKSPLIT * remove LINES restriction GILMART@lstc2vm.stortek.com                 
  879. FX131S3  * optionally use nnr in conjunction with nnrlist (via STATIC)          
  880. FX131S2  * add "selected" functions log,mail,print and read                     
  881. FX131S1  * fix hang problem                                                     
  882. HISTORY                                                                         
  883. :READ  NNR$XEDI AUXRXT   C1 UPDTS  05/10/92 11:12:23                            
  884. REXTCPIP * add rextcpip conversion routines                                     
  885. :READ  NNR$XEDI FX131SA  C1 UPDTS  07/24/92 08:08:39                            
  886. ./ I 00219000          $ 219200 200                   07/19/92 20:45:21         
  887. else if left(translate(newsgroup),2)='P_' &,                            00219200
  888.         length(newsgroup)>2 then                                        00219400
  889.   call Personal_HLI                                                     00219600
  890. ./ I 00299000          $ 299010 10                    07/19/92 20:45:21         
  891. /*-----------------------------------------------------------------*/   00299010
  892. /* Routine to drive single Personal HLI                            */   00299020
  893. /*-----------------------------------------------------------------*/   00299030
  894. Personal_HLI:                                                           00299040
  895.   gcount=0                                                              00299050
  896.   groups.=''                                                            00299060
  897.   original.=''                                                          00299070
  898.   TestHLI=substr(newsgroup,3)                                           00299080
  899.   if static then                                                        00299090
  900.     do                                                                  00299100
  901.       Address COMMAND 'SET CMSTYPE HT'                                  00299110
  902.       Address COMMAND 'EXECIO * DISKR' servaddr 'GROUPS *',             00299120
  903.                   '(STEM LIST.'                                         00299130
  904.       if rc^=0 then                                                     00299140
  905.         Address COMMAND 'EXECIO * DISKR NNTP GROUPS *',                 00299150
  906.                     '(STEM LIST.'                                       00299160
  907.       Address COMMAND 'SET CMSTYPE RT'                                  00299170
  908.       do i=1 to list.0                                                  00299180
  909.         ptr=word(list.i,1)                                              00299190
  910.         if update.ptr.FrstLstLg^='' &,                                  00299200
  911.           update.ptr.HiLvlIndx=TestHLI Then                             00299210
  912.           do                                                            00299220
  913.             parse var list.i . last_act frst_act ynmx                   00299230
  914.             parse var update.ptr.FrstLstLg frst_rem last_rem '$' .      00299240
  915.             gcount=gcount+1                                             00299250
  916.             item.gcount=ptr last_act frst_rem ynmx '1'                  00299260
  917.             original.ptr=last_act frst_rem ynmx                         00299270
  918.           end                                                           00299280
  919.       end                                                               00299290
  920.     end                                                                 00299300
  921.   else /* NOT static */                                                 00299310
  922.     do                                                                  00299320
  923.       ptr=updateptr                                                     00299330
  924.       do while (update.ptr.next^='')                                    00299340
  925.         if ptr='dummy.first.group' then ptr=update.ptr.next             00299350
  926.         if update.ptr.HiLvlIndx=TestHLI Then                            00299360
  927.           do                                                            00299370
  928.             status=STATUS_Response('GROUP' ptr)                         00299380
  929.             if word(Status,1)='211' then                                00299390
  930.               do                                                        00299400
  931.                 parse var status . . frst_act last_act .                00299410
  932.                 parse var update.ptr.FrstLstLg frst_rem last_rem '$' .  00299420
  933.                 gcount=gcount+1                                         00299430
  934.                 item.gcount=ptr last_act frst_rem '? 1'                 00299440
  935.                 original.ptr=last_act frst_rem '?'                      00299450
  936.               end                                                       00299460
  937.             else                                                        00299470
  938.               do                                                        00299480
  939.                 if ptr='dummy.first.group' then                         00299490
  940.                   say status                                            00299500
  941.                 /* Call Group_Delete(ptr) */                            00299510
  942.               end                                                       00299520
  943.           end                                                           00299530
  944.           ptr=update.ptr.next                                           00299540
  945.       end                                                               00299550
  946.       if update.ptr.HiLvlIndx=TestHLI Then                              00299560
  947.         do                                                              00299570
  948.           status=STATUS_Response('GROUP' ptr)                           00299580
  949.           if word(Status,1)='211' then                                  00299590
  950.             do                                                          00299600
  951.               parse var status . . frst_act last_act .                  00299610
  952.               parse var update.ptr.FrstLstLg frst_rem last_rem '$' .    00299620
  953.               gcount=gcount+1                                           00299630
  954.               item.gcount=ptr last_act frst_rem '? 1'                   00299640
  955.               original.ptr=last_act frst_rem '?'                        00299650
  956.             end                                                         00299660
  957.           else                                                          00299670
  958.             do                                                          00299680
  959.               if ptr='dummy.first.group' then                           00299690
  960.                 say status                                              00299700
  961.               /* Call Group_Delete(ptr) */                              00299710
  962.             end                                                         00299720
  963.         end                                                             00299730
  964.     end                                                                 00299740
  965.   item.0=gcount                                                         00299750
  966.   if gcount=0 then                                                      00299760
  967.     Do                                                                  00299770
  968.       say 'No such Personal HLI: "'substr(newsgroup,3)'"!'              00299780
  969.       Call Exit_QQuit                                                   00299790
  970.     End                                                                 00299800
  971.   Address COMMAND 'GLOBALV SET NEWNEWS 1'                               00299810
  972.   if ^static then                                                       00299820
  973.     Call SortList                                                       00299830
  974.   CHGList.=''                                                           00299840
  975.   Call NNR$SHLI                                                         00299850
  976.   Call save_articles                                                    00299860
  977.   Call Exit_QQuit                                                       00299870
  978. Return                                                                  00299880
  979. :READ  NNR$XEDI FX131SB  C1 UPDTS  07/26/92 15:59:48                            
  980. ./ R 00657770          $ 657850 80                    07/26/92 15:56:11         
  981.    row=3                                                                00657770
  982.    if multi=1 then                                                      00670930
  983.      col=1                                                              00671010
  984.    else                                                                 00671090
  985.      col=2                                                              00671170
  986. ./ R 00670770          $ 670850 80                    07/26/92 15:56:11         
  987.    row=3                                                                00670850
  988.    if multi=1 then                                                      00670930
  989.      col=1                                                              00671010
  990.    else                                                                 00671090
  991.      col=2                                                              00671170
  992. ./ R 00678250          $ 678258 8                     07/26/92 15:56:11         
  993.    row=3                                                                00678258
  994.    if multi=1 then                                                      00678266
  995.      col=1                                                              00678274
  996.    else                                                                 00678282
  997.      col=2                                                              00678290
  998. ./ R 00678650          $ 678658 8                     07/26/92 15:56:11         
  999.    row=3                                                                00657770
  1000.    if multi=1 then                                                      00670930
  1001.      col=1                                                              00671010
  1002.    else                                                                 00671090
  1003.      col=2                                                              00671170
  1004. ./ I 00946000          $ 946300 300                   07/26/92 15:56:11         
  1005. save_locate_index=0                                                     00946300
  1006. save_tstline=''                                                         00946600
  1007. ./ R 01054000          $ 1054490 490                  07/26/92 15:56:11         
  1008.    line=translate(strip(line))                                          01054490
  1009. ./ I 01063760          $ 1063763 3                    07/26/92 15:56:11         
  1010.            save_locate_index=0                                          01063763
  1011.            save_tstline=''                                              01063766
  1012. ./ I 01063790          $ 1063793 3                    07/26/92 15:56:11         
  1013.        save_locate_index=i                                              01063793
  1014.        save_tstline=tstline                                             01063796
  1015. ./ I 01063910          $ 1063912 2                    07/26/92 15:56:11         
  1016.    else If Substr(line,1,1)='=' Then                                    01063912
  1017.      do                                                                 01063914
  1018.        if save_locate_index=0 then                                      01063916
  1019.          do                                                             01063918
  1020.            message = 'The "=" will only work after a successful',       01063920
  1021.                      '"/string" search.'                                01063922
  1022.            Return                                                       01063924
  1023.          end                                                            01063926
  1024.        do i=save_locate_index+1 to item.0                               01063928
  1025.          if index(translate(item.i),save_tstline)>0 then                01063930
  1026.            leave                                                        01063932
  1027.        end                                                              01063934
  1028.        if i>item.0 then                                                 01063936
  1029.          do                                                             01063938
  1030.            index=index-(scrbot-2)                                       01063940
  1031.            save_locate_index=0                                          01063942
  1032.            message = 'Search string "'save_tstline'" not found.'        01063944
  1033.            save_tstline=''                                              01063946
  1034.            Return                                                       01063948
  1035.          end                                                            01063950
  1036.        save_locate_index=i                                              01063952
  1037.        Call NNR_Bottom(i 2) /* get correct page */                      01063954
  1038.        if (i-index)>(scrbot-2) then                                     01063956
  1039.          do                                                             01063958
  1040.             row=i-index-scrbot+4                                        01063960
  1041.             col=42                                                      01063962
  1042.          end                                                            01063964
  1043.        else                                                             01063966
  1044.          do                                                             01063968
  1045.            row=i-index+2                                                01063970
  1046.            col=2                                                        01063972
  1047.          end                                                            01063974
  1048.      end                                                                01063976
  1049. ./ I 01696760          $ 1696840 80                   07/26/92 15:56:11         
  1050. save_locate_index=0                                                     01696840
  1051. save_tstline=''                                                         01696920
  1052. ./ R 01808000          $ 1808490 490                  07/26/92 15:56:11         
  1053.    line=translate(strip(line))                                          01808490
  1054. ./ I 01823928          $ 1823930 2                    07/26/92 15:56:11         
  1055.            save_locate_index=0                                          01823930
  1056.            save_tstline=''                                              01823932
  1057. ./ I 01823952          $ 1823954 2                    07/26/92 15:56:11         
  1058.        save_locate_index=i                                              01823954
  1059.        save_tstline=tstline                                             01823956
  1060. ./ R 01823976          $ 1823980 4                    07/26/92 15:56:11         
  1061.        col=1                                                            01823980
  1062. ./ R 01823989 01824000 $ 1824009 20                   07/26/92 15:56:11         
  1063.    else If Substr(line,1,1)='=' Then                                    01824009
  1064.      do                                                                 01824029
  1065.        if save_locate_index=0 then                                      01824049
  1066.          do                                                             01824069
  1067.            message = 'The "=" will only work after a successful',       01824089
  1068.                      '"/string" search.'                                01824109
  1069.            Return                                                       01824129
  1070.          end                                                            01824149
  1071.        do i=save_locate_index+1 to item.0                               01824169
  1072.          if index(translate(item.i),save_tstline)>0 then                01824189
  1073.            leave                                                        01824209
  1074.        end                                                              01824229
  1075.        if i>item.0 then                                                 01824249
  1076.          do                                                             01824269
  1077.            index=index-(scrbot-2)                                       01824289
  1078.            save_locate_index=0                                          01824309
  1079.            message = 'Search string "'save_tstline'" not found.'        01824329
  1080.            save_tstline=''                                              01824349
  1081.            Return                                                       01824369
  1082.          end                                                            01824389
  1083.        save_locate_index=i                                              01824409
  1084.        Call NNR_Bottom(i 1) /* get correct page */                      01824429
  1085.        row=i-index+2                                                    01824449
  1086.        col=1                                                            01824469
  1087.      end                                                                01824489
  1088.    else If Abbrev('SORT',line,4) Then                                   01824509
  1089.        Call XHDR_Sort                                                   01824529
  1090.    else                                                                 01824549
  1091. :READ  NNR$XEDI FX131SC  C1 UPDTS  08/03/92 14:33:24                            
  1092. ./ R 00539000          $ 539490 490                   07/30/92 15:44:39         
  1093.                                ||' 6= FullList'                         00539490
  1094. ./ I 00648000          $ 648700 700                   07/30/92 15:44:39         
  1095.    else If Line=6 then call Full_List                                   00648700
  1096. ./ I 00816000          $ 816020 20                    07/30/92 15:44:39         
  1097. /*-----------------------------------------------------------------*/   00816020
  1098. /* Routine to handle PFK New_Full.                                 */   00816040
  1099. /*-----------------------------------------------------------------*/   00816060
  1100. Full_List:                                                              00816080
  1101.    item.=''                                                             00816100
  1102.    k=0                                                                  00816120
  1103.    start=1                                                              00816140
  1104.    if word(hli.0,1)='New_Groups_Since_'yymmdd then                      00816160
  1105.      start=2                                                            00816180
  1106.    do i=start to words(hli.0)                                           00816200
  1107.      ptr=word(hli.0,i)                                                  00816220
  1108.      if index(ptr,'Personal_')=0 then                                   00816240
  1109.        do                                                               00816260
  1110.          do j=1 to hli.ptr.0                                            00816280
  1111.            group=hli.ptr.j                                              00816300
  1112.            frst_rem=word(update.group.FrstLstLg,1)                      00816320
  1113.            k=k+1                                                        00816340
  1114.            if (frst_rem^='') then                                       00816360
  1115.              item.k=group,                                              00816380
  1116.                     word(original.group,1),                             00816400
  1117.                     frst_rem,                                           00816420
  1118.                     word(original.group,3),                             00816440
  1119.                     1                                                   00816460
  1120.            else                                                         00816480
  1121.              item.k=group original.group 0                              00816500
  1122.          end                                                            00816520
  1123.        end                                                              00816540
  1124.    end                                                                  00816560
  1125.    item.0=k                                                             00816580
  1126.    CHGList.=''                                                          00816600
  1127.    Address COMMAND 'DESBUF'                                             00816620
  1128.    Address COMMAND 'GLOBALV SET NEWNEWS 1'                              00816640
  1129.    Call NNR$SHLI                                                        00816660
  1130.    Drop item.                                                           00816680
  1131.    if CHGList.0 then                                                    00816700
  1132.      do                                                                 00816720
  1133.        do i=1 to words(hli.0)                                           00816740
  1134.          ptr=word(hli.0,i)                                              00816760
  1135.          if index(ptr,'Personal_')>0 then                               00816780
  1136.            iterate                                                      00816800
  1137.          else                                                           00816820
  1138.            Call Update_hli(ptr)                                         00816840
  1139.        end                                                              00816860
  1140.      end                                                                00816880
  1141.    Drop CHGList.                                                        00816900
  1142.    index=index-(scrbot-2)                                               00816920
  1143. Return                                                                  00816940
  1144. :READ  NNR$XEDI FX131S1  C2 UPDTS  05/14/92 06:50:17                            
  1145. ./ R 03308000          $ 3308190 190                  05/13/92 11:32:37         
  1146.               do                                                        03308190
  1147.                 line = line || data                                     03308380
  1148.                 test=right(line,5)                                      03308570
  1149.               end                                                       03308760
  1150. ./ I 03314000          $ 3314500 500                  05/13/92 11:32:37         
  1151.                     test=right(line||data,5)                            03315500
  1152. ./ R 03318000          $ 3318190 190                  05/13/92 11:32:37         
  1153.                   do                                                    03318190
  1154.                     line = line || data                                 03318380
  1155.                     test=right(line,5)                                  03318570
  1156.                   end                                                   03318760
  1157. ./ D 03321000                                         05/13/92 11:32:37         
  1158. ./ D 03558000                                         05/13/92 11:32:37         
  1159. ./ D 03564000                                         05/13/92 11:32:37         
  1160. :READ  NNR$XEDI FX131S2  C2 UPDTS  06/21/92 12:48:46                            
  1161. ./ D 01643000                                         06/21/92 11:36:03         
  1162. ./ R 01696000          $ 1696190 190                  06/21/92 11:36:03         
  1163. Sel_Art_Log.=''                                                         01696190
  1164. Sel_Art_Mail.=''                                                        01696380
  1165. Sel_Art_Print.=''                                                       01696570
  1166. Sel_Art_Read.=''                                                        01696760
  1167. ./ R 01838000 01839000 $ 1838030 30                   06/21/92 11:36:03         
  1168.       Select                                                            01838030
  1169.         When translate(string) = "R" Then                               01838060
  1170.           do                                                            01838090
  1171.             if Sel_Art_Read.0='' then                                   01838120
  1172.               Sel_Art_Read.0=1                                          01838150
  1173.             else                                                        01838180
  1174.               Sel_Art_Read.0=Sel_Art_Read.0+1                           01838210
  1175.             count=Sel_Art_Read.0                                        01838240
  1176.             Sel_Art_Read.count=word(item.ptr,1)||' '||ptr               01838270
  1177.             prfx.ptr=string                                             01838300
  1178.           end                                                           01838330
  1179.         When translate(string) = "L" Then                               01838360
  1180.           do                                                            01838390
  1181.             if Sel_Art_Log.0='' then                                    01838420
  1182.               Sel_Art_Log.0=1                                           01838450
  1183.             else                                                        01838480
  1184.               Sel_Art_Log.0=Sel_Art_Log.0+1                             01838510
  1185.             count=Sel_Art_Log.0                                         01838540
  1186.             Sel_Art_Log.count=word(item.ptr,1)||' '||ptr                01838570
  1187.             prfx.ptr=string                                             01838600
  1188.           end                                                           01838630
  1189.         When translate(string) = "P" Then                               01838660
  1190.           do                                                            01838690
  1191.             if Sel_Art_Print.0='' then                                  01838720
  1192.               Sel_Art_Print.0=1                                         01838750
  1193.             else                                                        01838780
  1194.               Sel_Art_Print.0=Sel_Art_Print.0+1                         01838810
  1195.             count=Sel_Art_Print.0                                       01838840
  1196.             Sel_Art_Print.count=word(item.ptr,1)||' '||ptr              01838870
  1197.             prfx.ptr=string                                             01838900
  1198.           end                                                           01838930
  1199.         When translate(string) = "M" Then                               01838960
  1200.           do                                                            01838990
  1201.             if Sel_Art_Mail.0='' then                                   01839020
  1202.               Sel_Art_Mail.0=1                                          01839050
  1203.             else                                                        01839080
  1204.               Sel_Art_Mail.0=Sel_Art_Mail.0+1                           01839110
  1205.             count=Sel_Art_Mail.0                                        01839140
  1206.             Sel_Art_Mail.count=word(item.ptr,1)||' '||ptr               01839170
  1207.             prfx.ptr=string                                             01839200
  1208.           end                                                           01839230
  1209.         Otherwise                                                       01839260
  1210.           Message='An unkown command was found,',                       01839290
  1211.            'try "(L)og,(M)ail,(P)rint or (R)ead".'                      01839320
  1212.           prfx.ptr='.'                                                  01969000
  1213.       End                                                               01839350
  1214. ./ I 01984000          $ 1984010 10                   06/21/92 11:36:03         
  1215.   if Sel_Art_Read.0='' &,                                               01984010
  1216.      Sel_Art_Log.0='' &,                                                01984020
  1217.      Sel_Art_Mail.0='' &,                                               01984030
  1218.      Sel_Art_Print.0='' then                                            01984040
  1219.     do                                                                  01984050
  1220.       index=index-(scrbot-2)                                            01984060
  1221.       message='There were *no* "Selected Articles"!',                   01984070
  1222.            'Try "(L)og,(M)ail,(P)rint or (R)ead".'                      01839320
  1223.       Return                                                            01984080
  1224.     end                                                                 01984090
  1225.   if Sel_Art_Log.0^='' then                                             01984100
  1226.     do                                                                  01984110
  1227.       LStatus=Selected_Log()                                            01984120
  1228.       if word(LStatus,1)='-1' then                                      01984130
  1229.         do                                                              01984140
  1230.           Message=subword(LStatus,2)                                    01984150
  1231.           index=index-(scrbot-2)                                        01984160
  1232.           Return                                                        01984170
  1233.         end                                                             01984180
  1234.     end                                                                 01984190
  1235.   if Sel_Art_Mail.0^='' then                                            01984200
  1236.     do                                                                  01984210
  1237.       recipient=Get_Recip()                                             01984220
  1238.       if recipient='QUIT' then                                          01984230
  1239.         do                                                              01984240
  1240.           Message='Mail will not be sent!'                              01984250
  1241.           Sel_Art_Mail.=''                                              01984260
  1242.           index=index-(scrbot-2)                                        01984270
  1243.           Return                                                        01984280
  1244.         end                                                             01984290
  1245.       MStatus=Selected_Mail()                                           01984300
  1246.       if word(MStatus,1)='-1' then                                      01984310
  1247.         do                                                              01984320
  1248.           Message=subword(MStatus,2)                                    01984330
  1249.           index=index-(scrbot-2)                                        01984340
  1250.           Return                                                        01984350
  1251.         end                                                             01984360
  1252.     end                                                                 01984370
  1253.   if Sel_Art_Print.0^='' then                                           01984380
  1254.     do                                                                  01984390
  1255.       PStatus=Selected_Print()                                          01984400
  1256.       if word(PStatus,1)='-1' then                                      01984410
  1257.         do                                                              01984420
  1258.           Message=subword(PStatus,2)                                    01984430
  1259.           index=index-(scrbot-2)                                        01984440
  1260.           Return                                                        01984450
  1261.         end                                                             01984460
  1262.     end                                                                 01984470
  1263.   if Sel_Art_Read.0^='' then                                            01984480
  1264.     do                                                                  01984490
  1265.       RStatus=Selected_Read()                                           01984500
  1266.       if word(RStatus,1)='-1' then                                      01984510
  1267.         do                                                              01984520
  1268.           Message=subword(RStatus,2)                                    01984530
  1269.           index=index-(scrbot-2)                                        01984540
  1270.           Return                                                        01984550
  1271.         end                                                             01984560
  1272.     end                                                                 01984570
  1273.   index=index-(scrbot-2)                                                01984580
  1274. Return                                                                  01984590
  1275. /*-----------------------------------------------------------------*/   01984600
  1276. /* Routine to handle PFK Selected Read.                            */   01984610
  1277. /*-----------------------------------------------------------------*/   01984620
  1278. Selected_Read:                                                          01984630
  1279. ./ D 01987000 01992000                                06/21/92 11:36:03         
  1280. ./ R 01996000          $ 1996490 490                  06/21/92 11:36:03         
  1281.                    word(Sel_Art_Read.1,1)                               01996490
  1282. ./ D 02000000                                         06/21/92 11:36:03         
  1283. ./ R 02007000 02009000 $ 2007990 990                  06/21/92 11:36:03         
  1284.          Return(nntprc)                                                 02007990
  1285. ./ R 02018000          $ 2018490 490                  06/21/92 11:36:03         
  1286.      ptr=Word(Sel_Art_Read.i,2)                                         02018490
  1287. ./ R 02021000 02023000 $ 2021990 990                  06/21/92 11:36:03         
  1288.    Sel_Art_Read.=''                                                     02021990
  1289. ./ R 02026000          $ 2026004 4                    06/21/92 11:36:03         
  1290. Return(0)                                                               02026004
  1291. /*-----------------------------------------------------------------*/   02026008
  1292. /* Routine to handle PFK Selected Log.                             */   02026012
  1293. /*-----------------------------------------------------------------*/   02026016
  1294. Selected_Log: procedure expose group Sel_Art_log. prfx.                 02026020
  1295.    Address COMMAND 'GLOBALV GET SOCKET'                                 02026024
  1296.    status=STATUS_Response('GROUP '||group)                              02026028
  1297.    If word(status,1)='-1' Then Return(Status)                           02026032
  1298.    do i=1 to Sel_Art_Log.0                                              02026036
  1299.      status=TEXT_Response('ARTICLE' Word(Sel_Art_Log.i,1))              02026040
  1300.      If word(status,1)='-1' Then Return(Status)                         02026044
  1301.      Status=Check_Status()                                              02026048
  1302.      Call Split_Response                                                02026052
  1303.      notebook='NNRLOG'                                                  02026056
  1304.      Address COMMAND 'EXECIO 1 DISKW' notebook 'NOTEBOOK A 0 V 132',    02026060
  1305.                                           '(STRING' copies('=',72)      02026064
  1306.      Address COMMAND 'EXECIO' item.0 'DISKW' notebook 'NOTEBOOK A',     02026068
  1307.                                           '0 V 132 ( FINIS STEM ITEM.'  02026072
  1308.      ptr=Word(Sel_Art_Log.i,2)                                          02026076
  1309.      prfx.ptr='@'                                                       02026080
  1310.    end                                                                  02026084
  1311.    Sel_Art_Log.=''                                                      02026088
  1312. Return(0)                                                               02026092
  1313. /*-----------------------------------------------------------------*/   02026096
  1314. /* Routine to handle PFK Selected Mail.                            */   02026100
  1315. /*-----------------------------------------------------------------*/   02026104
  1316. Selected_Mail: procedure expose recipient group Sel_Art_Mail. prfx.     02026108
  1317.    Address COMMAND 'GLOBALV GET SOCKET'                                 02026112
  1318.    status=STATUS_Response('GROUP '||group)                              02026116
  1319.    If word(status,1)='-1' Then Return(Status)                           02026120
  1320.    do i=1 to Sel_Art_Mail.0                                             02026124
  1321.      status=TEXT_Response('ARTICLE' Word(Sel_Art_Mail.i,1))             02026128
  1322.      If word(status,1)='-1' Then Return(Status)                         02026132
  1323.      Status=Check_Status()                                              02026136
  1324.      Call Split_Response                                                02026140
  1325.      Call Send_Article(i Sel_Art_Mail.0)                                02026144
  1326.      ptr=Word(Sel_Art_mail.i,2)                                         02026148
  1327.      prfx.ptr='@'                                                       02026152
  1328.    end                                                                  02026156
  1329.    Sel_Art_Mail.=''                                                     02026160
  1330. Return(0)                                                               02026164
  1331. /*-----------------------------------------------------------------*/   02026168
  1332. /* Routine to get recipient.                                       */   02026172
  1333. /*-----------------------------------------------------------------*/   02026176
  1334. Get_Recip: procedure                                                    02026180
  1335. Address COMMAND 'GLOBALV GET VERSION'                                   02026184
  1336. message = ''                                                            02026188
  1337. Flag='MAIL'                                                             02026192
  1338. Recipient=''                                                            02026196
  1339. 'Extract /lscreen'                                                      02026200
  1340. row=9; col=7                                                            02026204
  1341. Address COMMAND 'DESBUF'                                                02026208
  1342. Do Forever                                                              02026212
  1343.   Call Display_Recip                                                    02026216
  1344.   'Read Nochange Tag'                                                   02026220
  1345.   'Extract /cursor'                                                     02026224
  1346.   row = cursor.5; col = cursor.6;                                       02026228
  1347.   num=0                                                                 02026232
  1348.   Do While(Queued()>0)                                                  02026236
  1349.     num=num+1                                                           02026240
  1350.     Parse Pull QueuedLine.num                                           02026244
  1351.   end                                                                   02026248
  1352.   do i=1 to num                                                         02026252
  1353.     Parse var QueuedLine.i key line column string;                      02026256
  1354.     if key = "RES" Then                                                 02026260
  1355.       do                                                                02026264
  1356.         if line = 9 Then                                                02026268
  1357.           Recipient=MailName(string)                                    02026272
  1358.       end                                                               02026276
  1359.     else SaveQueued=QueuedLine.i                                        02026280
  1360.   end                                                                   02026284
  1361.   Parse Var SaveQueued key line column string;                          02026288
  1362.   Select                                                                02026292
  1363.     When key = "PFK" Then                                               02026296
  1364.       do                                                                02026300
  1365.         If Line=1 then Call NNR$HELP(3)                                 02026304
  1366.         else If Line=3 then Flag='QUIT'                                 02026308
  1367.         else If Line=6 then Flag=Recipient                              02026312
  1368.         else message='Unsupported PFK'                                  02026316
  1369.       end                                                               02026320
  1370.     When key = "ETK" Then                                               02026324
  1371.       do                                                                02026328
  1372.         'CURSOR HOME'                                                   02026332
  1373.         'EXTRACT /CURSOR/'                                              02026336
  1374.         row=cursor.1                                                    02026340
  1375.         col=cursor.2                                                    02026344
  1376.       end                                                               02026348
  1377.     Otherwise Nop                                                       02026352
  1378.   End                                                                   02026356
  1379.   If flag^='MAIL' then                                                  02026360
  1380.     leave                                                               02026364
  1381. End                                                                     02026368
  1382. Return(Flag)                                                            02026372
  1383. /*-----------------------------------------------------------------*/   02026376
  1384. /* Routine to display mail forward screen.                         */   02026380
  1385. /*-----------------------------------------------------------------*/   02026384
  1386. Display_Recip:                       /* set each line of the screen */  02026388
  1387.    'Set Reserved' 1 'noh' '29'x'!             ' '29'x'@',               02026392
  1388.                   center('*** NNR/VM ('||version||') ***',35),          02026396
  1389.                   right('Post(2)',25),                                  02026400
  1390.                   '29'x'!                    '                          02026404
  1391.    'Set Reserved' 2 'noh'                                               02026408
  1392.    'Set Reserved' 3 'noh' '29'x'!'||,                                   02026412
  1393. 'Bulk Mailing collects only the "To:" field for all Articles marked',   02026416
  1394.                           '29'x'!'                                      02026420
  1395.    'Set Reserved' 4 'noh' '29'x'!'||,                                   02026424
  1396. 'with a "M" on the Headers Screen. This information is collected only', 02026428
  1397.                           '29'x'!'                                      02026432
  1398.    'Set Reserved' 5 'noh' '29'x'!'||,                                   02026436
  1399. 'once reguardless of the number of "M"s. When the Recpient has been'||, 02026440
  1400.                           '29'x'!'                                      02026444
  1401.    'Set Reserved' 6 'noh' '29'x'!'||,                                   02026448
  1402. 'supplied please select from the PFK list below.                    '||,02026452
  1403.                           '29'x'!'                                      02026456
  1404.    'Set Reserved' 7 'noh'                                               02026460
  1405.    'Set Reserved' 8 'noh'                                               02026464
  1406.    'Set Reserved' 9 'noh' '29'x'@ To:'||'29'x'*'||,                     02026468
  1407.                   Left(Recipient,60)'29'x'!'                            02026472
  1408.    Do scrpos=10 to lscreen.1-4                                          02026476
  1409.    'Set Reserved' scrpos 'noh'                                          02026480
  1410.    End                                                                  02026484
  1411.    'Set Reserved' lscreen.1-3 'noh'                                     02026488
  1412.    'Set Reserved' lscreen.1-2 'high',                                   02026492
  1413.                                  ' 1= Help     ',                       02026496
  1414.                                ||'2=          ',                        02026500
  1415.                                ||'3= Quit     ',                        02026504
  1416.                                ||' 4=          ',                       02026508
  1417.                                ||' 5=          ',                       02026512
  1418.                                ||' 6= Send    '                         02026516
  1419.    'Set Reserved' lscreen.1-1 'high',                                   02026520
  1420.                                  ' 7=          ',                       02026524
  1421.                                ||'8=          ',                        02026528
  1422.                                ||'9=          ',                        02026532
  1423.                                ||'10=          ',                       02026536
  1424.                                ||'11=          ',                       02026540
  1425.                                ||'12=         '                         02026544
  1426.    If message ^= "" Then                                                02026548
  1427.       Do                                                                02026552
  1428.          'EMSG' message                                                 02026556
  1429.          message = ''                                                   02026560
  1430.       End;                                                              02026564
  1431.    'Cursor screen' row col                                              02026568
  1432. Return                                                                  02026572
  1433. /*-----------------------------------------------------------------*/   02026576
  1434. /* Routine to send bulk mail                                       */   02026580
  1435. /*-----------------------------------------------------------------*/   02026584
  1436. Send_Article: procedure expose recipient group item.                    02026588
  1437. arg num last                                                            02026592
  1438.    Address COMMAND 'EXECIO 1 CP ( VAR MYTIME STRING QUERY TIME'         02026596
  1439.    Address COMMAND 'GLOBALV GET THISNODE'                               02026600
  1440.    Address COMMAND 'GLOBALV GET MAILER'                                 02026604
  1441.    Address COMMAND 'GLOBALV GET ORGANIZATION'                           02026608
  1442.    posth.=''                                                            02026612
  1443.    header.=''                                                           02026616
  1444.    trailer.=''                                                          02026620
  1445.    posth.0=6                                                            02026624
  1446.    posth.1='From:' userid()||'@'||thisnode                              02026628
  1447.    posth.2='To:' Recipient                                              02026632
  1448.    posth.3='Subject: Bulk Mail from Newsgroup:',                        02026636
  1449.                 group '('num 'of' last')'                               02026640
  1450.    mydate=date('U')                                                     02026644
  1451.    parse var mydate mm '/' dd '/' yy                                    02026648
  1452.    wkd=substr(date('W'),1,3)                                            02026652
  1453.    mon=substr(date('M'),1,3)                                            02026656
  1454.    mytime=word(mytime,3)||' '||word(mytime,4)                           02026660
  1455.    posth.4='Date:' wkd||',' dd mon yy mytime                            02026664
  1456.    posth.5='Organization:' organization                                 02026668
  1457.    posth.6=' '                                                          02026672
  1458.    header.=''                                                           02026676
  1459.    trailer.=''                                                          02026680
  1460.    trailer.1='.'                                                        02026684
  1461.    trailer.2='QUIT'                                                     02026688
  1462.    header.1='HELO '||thisnode                                           02026692
  1463.    header.2='MAIL FROM:<'||userid()||'@'||thisnode||'>'                 02026696
  1464.    if index(Recipient,'(')>0 then                                       02026700
  1465.      rcptpart=word(Recipient,1)                                         02026704
  1466.    else if index(Recipient,'<')>0 then                                  02026708
  1467.      parse var Recipient '<' rcptpart '>'                               02026712
  1468.    else if index(Recipient,'@')>0 then                                  02026716
  1469.      do                                                                 02026720
  1470.        do i=1 to words(Recipient)                                       02026724
  1471.          if index(word(Recipient,i),'@')>0 then                         02026728
  1472.            rcptpart=word(Recipient,i)                                   02026732
  1473.        end                                                              02026736
  1474.      end                                                                02026740
  1475.    else                                                                 02026744
  1476.      rcptpart=Recipient                                                 02026748
  1477.    header.3='RCPT TO:<'||rcptpart||'>'                                  02026752
  1478.    header.4='DATA'                                                      02026756
  1479.    Address COMMAND 'EXECIO 0 CP (STRING DEF 00D AS 02D'                 02026760
  1480.    Address COMMAND 'EXECIO 0 CP (STRING DEF PUN AS 00D'                 02026764
  1481.    Address COMMAND 'EXECIO 0 CP (STRING '||,                            02026768
  1482.                               'SPOOL 00D TO' MAILER 'CONT CLASS M'      02026772
  1483.    Address COMMAND 'EXECIO * PUNCH (STEM HEADER.'                       02026776
  1484.    Address COMMAND 'EXECIO * PUNCH (STEM POSTH.'                        02026780
  1485.    /* Double periods as per RFC 977 3.10.1 and  */                      02026784
  1486.    do i=1 to item.0     /* RFC 821 4.5.2       */                       02026788
  1487.      if left(item.i,1)='.' then                                         02026792
  1488.        Address COMMAND 'EXECIO 1 PUNCH (STRING' '.'item.i               02026796
  1489.      else                                                               02026800
  1490.        Address COMMAND 'EXECIO 1 PUNCH (STRING' item.i                  02026804
  1491.    end                                                                  02026808
  1492.    Address COMMAND 'EXECIO * PUNCH (STEM TRAILER.'                      02026812
  1493.    Address COMMAND 'EXECIO 0 CP (STRING CLOSE 00D NAME '||,             02026816
  1494.                userid()||' MAIL'                                        02026820
  1495.    Address COMMAND 'EXECIO 0 CP (STRING DETACH 00D'                     02026824
  1496.    Address COMMAND 'EXECIO 0 CP (STRING DEF 02D AS 00D'                 02026828
  1497. Return                                                                  02026832
  1498. /*-----------------------------------------------------------------*/   02026836
  1499. /* Routine to handle PFK Selected Log.                             */   02026840
  1500. /*-----------------------------------------------------------------*/   02026844
  1501. Selected_Print: procedure expose group Sel_Art_Print. prfx.             02026848
  1502.    Address COMMAND 'GLOBALV GET SOCKET'                                 02026852
  1503.    status=STATUS_Response('GROUP '||group)                              02026856
  1504.    If word(status,1)='-1' Then Return(Status)                           02026860
  1505.    do i=1 to Sel_Art_Print.0                                            02026864
  1506.      status=TEXT_Response('ARTICLE' Word(Sel_Art_Print.i,1))            02026868
  1507.      If word(status,1)='-1' Then Return(Status)                         02026872
  1508.      Status=Check_Status()                                              02026876
  1509.      Call Split_Response                                                02026880
  1510.      article_line_count=0                                               02026884
  1511.      do while article_line_count<item.0                                 02026888
  1512.        Address COMMAND 'EXECIO 1 PRINT (CC DATA STRING 1'||,            02026892
  1513.                           group||' #'||Word(Sel_Art_Print.i,1)          02026896
  1514.        do linecount=1 to 55                                             02026900
  1515.          article_line_count=article_line_count+1                        02026904
  1516.          Address COMMAND 'EXECIO 1 PRINT (CC DATA STRING  '||,          02026908
  1517.                        left(item.article_line_count,132)                02026912
  1518.          if article_line_count=item.0 then                              02026916
  1519.              Leave                                                      02026920
  1520.        end                                                              02026924
  1521.      end                                                                02026928
  1522.      ptr=Word(Sel_Art_Print.i,2)                                        02026932
  1523.      prfx.ptr='@'                                                       02026936
  1524.    end                                                                  02026940
  1525.    Sel_Art_Log.=''                                                      02026944
  1526. Return(0)                                                               02026948
  1527. ./ R 03573000          $ 3573490 490                  06/21/92 11:36:03         
  1528. NEWSSeleS:Procedure expose socket Sel_Art_Read.                         03573490
  1529. ./ R 03581000 03582000 $ 3581590 590                  06/21/92 11:36:03         
  1530.           do i=1 to Sel_Art_Read.0                                      03581590
  1531.             if Start_Article=word(Sel_Art_Read.i,1) then                03582180
  1532. ./ R 03595000 03598000 $ 3595790 790                  06/21/92 11:36:03         
  1533.           SaveArticle=word(Sel_Art_Read.ptr,1)                          03595790
  1534.           do while ((ptr > 0) & (ptr <= Sel_Art_Read.0))                03596580
  1535.             if SaveArticle < Sel_Art_Read.ptr then                      03597370
  1536.               SaveArticle=word(Sel_Art_Read.ptr,1)                      03598160
  1537. ./ R 03603000 03604000 $ 3603590 590                  06/21/92 11:36:03         
  1538.                              Get_Subject(word(Sel_Art_Read.ptr,1))      03603590
  1539.             status=TEXT_Response(Action word(Sel_Art_Read.ptr,1))       03604180
  1540. :READ  NNR$XEDI FX131S3  C2 UPDTS  05/30/92 11:08:39                            
  1541. ./ I 00104000          $ 104500 500                   05/30/92 11:08:39         
  1542. Address COMMAND 'GLOBALV GET STATIC'                                    00104500
  1543. ./ D 00254000                                         05/30/92 11:08:39         
  1544. ./ R 00258000 00292000 $ 258490 490                   05/30/92 11:08:39         
  1545.   if static then                                                        00258490
  1546.     do                                                                  00258980
  1547.       Address COMMAND 'SET CMSTYPE HT'                                  00259470
  1548.       Address COMMAND 'EXECIO * DISKR' servaddr 'GROUPS *',             00259960
  1549.                   '(STEM LIST.'                                         00260450
  1550.       if rc^=0 then                                                     00260940
  1551.         Address COMMAND 'EXECIO * DISKR NNTP GROUPS *',                 00261430
  1552.                     '(STEM LIST.'                                       00261920
  1553.       Address COMMAND 'SET CMSTYPE RT'                                  00262410
  1554.       do i=1 to list.0                                                  00262900
  1555.         ptr=word(list.i,1)                                              00263390
  1556.         if update.ptr.FrstLstLg^='' then                                00263880
  1557.           do                                                            00264370
  1558.             parse var list.i . last_act frst_act ynmx                   00264860
  1559.             parse var update.ptr.FrstLstLg frst_rem last_rem '$' .      00265350
  1560.             gcount=gcount+1                                             00265840
  1561.             item.gcount=ptr last_act frst_rem ynmx '1'                  00266330
  1562.             original.ptr=last_act frst_rem ynmx                         00266820
  1563.           end                                                           00267310
  1564.       end                                                               00267800
  1565.     end                                                                 00268290
  1566.   else /* NOT static */                                                 00268780
  1567.     do                                                                  00269270
  1568.       ptr=updateptr                                                     00269760
  1569.       do while (update.ptr.next^='')                                    00270250
  1570.         if ptr='dummy.first.group' then ptr=update.ptr.next             00270740
  1571.         status=STATUS_Response('GROUP' ptr)                             00271230
  1572.         if word(Status,1)='211' then                                    00271720
  1573.           do                                                            00272210
  1574.             parse var status . . frst_act last_act .                    00272700
  1575.             parse var update.ptr.FrstLstLg frst_rem last_rem '$' .      00273190
  1576.             gcount=gcount+1                                             00273680
  1577.             item.gcount=ptr last_act frst_rem '? 1'                     00274170
  1578.             original.ptr=last_act frst_rem '?'                          00274660
  1579.           end                                                           00275150
  1580.         else                                                            00275640
  1581.           do                                                            00276130
  1582.             if ptr='dummy.first.group' then                             00276620
  1583.               say status                                                00277110
  1584.             /* Call Group_Delete(ptr) */                                00277600
  1585.           end                                                           00278090
  1586.         ptr=update.ptr.next                                             00278580
  1587.       end                                                               00279070
  1588.       status=STATUS_Response('GROUP' ptr)                               00279560
  1589.       if word(Status,1)='211' then                                      00280050
  1590.         do                                                              00280540
  1591.           parse var status . . frst_act last_act .                      00281030
  1592.           parse var update.ptr.FrstLstLg frst_rem last_rem '$' .        00281520
  1593.           gcount=gcount+1                                               00282010
  1594.           item.gcount=ptr last_act frst_rem '? 1'                       00282500
  1595.           original.ptr=last_act frst_rem '?'                            00282990
  1596.         end                                                             00283480
  1597.       else                                                              00283970
  1598.         do                                                              00284460
  1599.           if ptr='dummy.first.group' then                               00284950
  1600.             say status                                                  00285440
  1601.           /* Call Group_Delete(ptr) */                                  00285930
  1602.         end                                                             00286420
  1603.     end                                                                 00287400
  1604.   item.0=gcount                                                         00286910
  1605. ./ R 00294000          $ 294290 290                   05/30/92 11:08:39         
  1606.   if ^static then                                                       00294290
  1607.     Call SortList                                                       00294580
  1608. ./ R 00378000 00383000 $ 378290 290                   05/30/92 11:08:39         
  1609. if static then                                                          00378290
  1610.   do                                                                    00378580
  1611.     Address COMMAND 'SET CMSTYPE HT'                                    00378870
  1612.     Address COMMAND 'EXECIO * DISKR' servaddr 'GROUPS *',               00379160
  1613.                 '(STEM LIST.'                                           00379450
  1614.     if rc^=0 then                                                       00379740
  1615.     Address COMMAND 'EXECIO * DISKR NNTP GROUPS *',                     00380030
  1616.                   '(STEM LIST.'                                         00380320
  1617.     Address COMMAND 'SET CMSTYPE RT'                                    00380610
  1618.   end                                                                   00380900
  1619. else /* NOT static */                                                   00381190
  1620.   do                                                                    00381480
  1621.     nntprc=NEWSList()                                                   00381770
  1622.     if word(nntprc,1)^='215' then                                       00382060
  1623.       do                                                                00382350
  1624.         say nntprc                                                      00382640
  1625.         Call Exit_QQuit                                                 00382930
  1626.       end                                                               00383220
  1627.   end                                                                   00383510
  1628. ./ R 00387000 00403000 $ 387390 390                   05/30/92 11:08:39         
  1629. if static then                                                          00387390
  1630.   do                                                                    00387780
  1631.     do l=1 to list.0                                                    00388170
  1632.       groupchk=word(list.l,1)                                           00388560
  1633.       if censor.groupchk='' then                                        00388950
  1634.         do                                                              00389340
  1635.           i=i+1                                                         00389730
  1636.           item.i=groupchk                                               00390120
  1637.           original.groupchk=subword(list.l,2)                           00390510
  1638.           if new.groupchk^='' then                                      00390900
  1639.             do                                                          00391290
  1640.               k=k+1                                                     00391680
  1641.               hli.HiQual.k=groupchk                                     00392070
  1642.             end                                                         00392460
  1643.         end                                                             00392850
  1644.     end                                                                 00393240
  1645.   end                                                                   00393630
  1646. else /* NOT static */                                                   00394020
  1647.   do                                                                    00394410
  1648.     do l=1 to list.0                                                    00394800
  1649.       if index(word(list.l,4),'=')=0 then                               00395190
  1650.         do                                                              00395580
  1651.           groupchk=word(list.l,1)                                       00395970
  1652.           if censor.groupchk='' then                                    00396360
  1653.             do                                                          00396750
  1654.               i=i+1                                                     00397140
  1655.               item.i=groupchk                                           00397530
  1656.               original.groupchk=subword(list.l,2)                       00397920
  1657.               if new.groupchk^='' then                                  00398310
  1658.                 do                                                      00398700
  1659.                   k=k+1                                                 00399090
  1660.                   hli.HiQual.k=groupchk                                 00399480
  1661.                 end                                                     00399870
  1662.             end                                                         00400260
  1663.         end                                                             00400650
  1664.     end                                                                 00401040
  1665.   end                                                                   00401430
  1666. ./ R 00409000          $ 409290 290                   05/30/92 11:08:39         
  1667. if ^static then                                                         00409290
  1668.   Call SortList                                                         00409580
  1669. :READ  NNR$XEDI FX131S4  C1 UPDTS  07/04/92 11:47:17                            
  1670. ./ R 01023000          $ 1023490 490                  07/04/92 11:47:17         
  1671.                                ||'11= Reduce   ',                       01023490
  1672. ./ R 01040000          $ 1040490 490                  07/04/92 11:47:17         
  1673.                                ||'11= Reduce   ',                       01040490
  1674. ./ I 01063000          $ 1063300 300                  07/04/92 11:47:17         
  1675.    else If (line = 'PREFER') Then                                       01063300
  1676.      Call SHLI_Prefer                                                   01063600
  1677. ./ I 01244000          $ 1244040 40                   07/04/92 11:47:17         
  1678. /*-----------------------------------------------------------------*/   01244040
  1679. /* Routine to reduce shli display                                  */   01244080
  1680. /*-----------------------------------------------------------------*/   01244120
  1681. SHLI_Reduce:                                                            01244160
  1682.    newptr=0                                                             01244200
  1683.    do i=1 to item.0                                                     01244240
  1684.      if num.i^=0 then                                                   01244280
  1685.        do                                                               01244320
  1686.          newptr=newptr+1                                                01244360
  1687.          first.newptr=first.i                                           01244400
  1688.          last.newptr=last.i                                             01244440
  1689.          newcheck.newptr=newcheck.i                                     01244480
  1690.          groupname.newptr=groupname.i                                   01244520
  1691.          num.newptr=num.i                                               01244440
  1692.          item.newptr=item.i                                             01244560
  1693.        end                                                              01244600
  1694.    end                                                                  01244640
  1695.    do i=newptr+1 to item.0                                              01244680
  1696.      item.i=''                                                          01244720
  1697.    end                                                                  01244760
  1698.    item.0=newptr                                                        01244800
  1699.    index=0                                                              01244840
  1700. Return                                                                  01244880
  1701. ./ R 01264000 01268000 $ 1265990 1990                 07/04/92 11:47:17         
  1702.    else If Line=11 then Call SHLI_Reduce                                01265990
  1703. ./ I 01271000          $ 1271100 100                  07/04/92 11:47:17         
  1704. /*-----------------------------------------------------------------*/   01271100
  1705. /* Routine to handle PFK Article.                                  */   01271200
  1706. /*-----------------------------------------------------------------*/   01271300
  1707. SHLI_Prefer:                                                            01271400
  1708.   Address COMMAND 'XEDIT USER PREFS S (PROFILE NNR$PREF'                01271500
  1709.   index=index-(scrbot-2)                                                01271600
  1710. Return                                                                  01271700
  1711. :READ  NNR$XEDI FX131S5  C1 UPDTS  07/04/92 12:28:20                            
  1712. ./ I 00629000          $ 629300 300                   07/04/92 12:28:20         
  1713.    else If Abbrev('PREFER',line,4) Then                                 00629300
  1714.      Call SHLI_Prefer                                                   00629600
  1715. ./ R 01063300          $ 1063390 90                   07/04/92 12:28:20         
  1716.    else If Abbrev('PREFER',line,4) Then                                 01063390
  1717. ./ I 01823000          $ 1823200 200                  07/04/92 12:28:20         
  1718.    else If Abbrev('PREFER',line,4) Then                                 01823300
  1719.      do                                                                         
  1720.        Call SHLI_Prefer                                                 01823600
  1721.      end                                                                        
  1722. :READ  NNR$XEDI FX131S6  C1 UPDTS  07/05/92 12:06:50                            
  1723. ./ R 00628000          $ 628490 490                   07/05/92 12:06:50         
  1724.    else If Abbrev('SUBSET',line,3) Then                                 00628490
  1725. ./ R 00629300          $ 629390 90                    07/05/92 12:06:50         
  1726.    else If Abbrev('PREFERENCE',line,6) Then                             00629300
  1727. ./ I 00734000          $ 734500 500                   07/05/92 12:06:50         
  1728.    say 'Type "RETURN" to resume NNR.'                                   00734500
  1729. ./ R 01060000          $ 1060490 490                  07/05/92 12:06:50         
  1730.    else If Abbrev('SUBSET',line,3) Then                                 01060490
  1731. ./ R 01062000          $ 1062490 490                  07/05/92 12:06:50         
  1732.    else If Abbrev('UPDATE',line,3) Then                                 01062490
  1733. ./ R 01063390          $ 1063480 90                   07/05/92 12:06:50         
  1734.    else If Abbrev('PREFERENCE',line,6) Then                             01063390
  1735. ./ R 01822000          $ 1822490 490                  07/05/92 12:06:50         
  1736.    else If Abbrev('SUBSET',line,3) Then                                 01822490
  1737. ./ R 01823200          $ 1823290 90                   07/05/92 12:06:50         
  1738.    else If Abbrev('PREFERENCE',line,6) Then                             01823200
  1739. ./ I 02320000          $ 2320200 200                  07/05/92 12:06:50         
  1740.    else If Abbrev('PREFERENCE',line,6) Then                             02320200
  1741.      Call SHLI_Prefer                                                   02320400
  1742.    else If Abbrev('SUBSET',line,3) Then                                 02320600
  1743.      Call Subset                                                        02320800
  1744. ./ I 02558000          $ 2558200 200                  07/05/92 12:06:50         
  1745.    else If Abbrev('PREFERENCE',line,6) Then                             02558200
  1746.      Call SHLI_Prefer                                                   02558400
  1747.    else If Abbrev('SUBSET',line,3) Then                                 02558600
  1748.      Call Subset                                                        02558800
  1749. ./ I 02917000          $ 2917500 500                  07/05/92 12:06:50         
  1750. row=lscreen.1; col=7                                                    02917500
  1751. ./ R 02919000          $ 2919490 490                  07/05/92 12:06:50         
  1752. start=screennum*18*3+1                                                  02919490
  1753. ./ I 02955000          $ 2955050 50                   07/05/92 12:06:50         
  1754.         else If Line=4 then                                             02955050
  1755.           do                                                            02955100
  1756.             HELPSCR.=''                                                 02955150
  1757.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       02955200
  1758.                              start '(FINI STEM HELPSCR.'                02955250
  1759.           end                                                           02955300
  1760.         else If Line=5 then                                             02955350
  1761.           do                                                            02955400
  1762.             HELPSCR.=''                                                 02955450
  1763.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       02955500
  1764.                              start+18 '(FINI STEM HELPSCR.'             02955550
  1765.           end                                                           02955600
  1766.         else If Line=6 then                                             02955650
  1767.           do                                                            02955700
  1768.             HELPSCR.=''                                                 02955750
  1769.             Address COMMAND 'EXECIO 18 DISKR NNRHELP $XSCREEN *',       02955800
  1770.                              start+36 '(FINI STEM HELPSCR.'             02955850
  1771.           end                                                           02955900
  1772. ./ R 02988000 02990000 $ 2988690 690                  07/05/92 12:06:50         
  1773.                                ||' 4= General  ',                       02988690
  1774.                                ||' 5= PFKs     ',                       02989380
  1775.                                ||' 6= Commands'                         02990070
  1776. ./ R 02992000 02993000 $ 2992590 590                  07/05/92 12:06:50         
  1777.                                  ' 7=          ',                       02992590
  1778.                                ||'8=          ',                        02993180
  1779. ./ R 03003000          $ 3003490 490                  07/05/92 12:06:50         
  1780.    'Cursor screen' row col                                              03003490
  1781. :READ  NNR$XEDI FX131S7  C1 UPDTS  07/05/92 13:10:38                            
  1782. ./ R 03382000 03383000 $ 3382990 990                  07/05/92 13:10:38         
  1783.   status=TEXT_Response('XHDR subject')                                  03382990
  1784. ./ D 03602000 03603590                                07/05/92 13:10:38         
  1785. ./ I 03606000          $ 3606300 300                  07/05/92 13:10:38         
  1786.             Address COMMAND 'GLOBALV SETL SUBJECT',                     03604380
  1787.                              Get_Subject()                              03604580
  1788. ./ R 03625000          $ 3625490 490                  07/05/92 13:10:38         
  1789.               status=TEXT_Response('HEAD')                              03625000
  1790. ./ D 03674000 03675000                                07/05/92 13:10:38         
  1791. ./ R 03677000          $ 3677490 490                  07/05/92 13:10:38         
  1792.             If word(status,1)='-1' Then Return(Status)                  03677000
  1793. ./ I 03678000          $ 3678300 300                  07/05/92 13:10:38         
  1794.             Address COMMAND 'GLOBALV SETL SUBJECT',                     03676300
  1795.                              Get_Subject()                              03676600
  1796. ./ R 03697000          $ 3697490 490                  07/05/92 13:10:38         
  1797.               status=TEXT_Response('HEAD')                              03697000
  1798. ./ R 03751000          $ 3751490 490                  07/05/92 13:10:38         
  1799.           status=TEXT_Response(Action)                                  03751490
  1800. ./ R 03758000          $ 3758490 490                  07/05/92 13:10:38         
  1801.                              Get_Subject()                              03758490
  1802. ./ R 03775000          $ 3775490 490                  07/05/92 13:10:38         
  1803.                 status=TEXT_Response(Action)                            03775490
  1804. ./ R 03784000          $ 3784490 490                  07/05/92 13:10:38         
  1805.                              Get_Subject()                              03784490
  1806. ./ R 03800000          $ 3800490 490                  07/05/92 13:10:38         
  1807.               status=TEXT_Response('HEAD')                              03800490
  1808. :READ  NNR$XEDI FX131S8  C1 UPDTS  07/05/92 15:48:33                            
  1809. ./ I 00629600          $ 629680 80                    07/05/92 15:48:33         
  1810.    else If Abbrev('TOP',line,3) Then                                    00629680
  1811.      Call NNR_Top                                                       00629760
  1812.    else If Abbrev('BOTTOM',line,3) Then                                 00629840
  1813.      Call NNR_Bottom(words(hli.0) 3)                                    00629920
  1814. ./ R 00649000 00650000 $ 649590 590                   07/05/92 15:48:33         
  1815.    else If Line=7 then call NNR_Backward(3)                             00649590
  1816.    else If Line=8 then call NNR_Forward(words(hli.0) 3)                 00650180
  1817. ./ R 00656000 00659000 $ 656590 590                   07/05/92 15:48:33         
  1818. NNR_Backward:                                                           00656590
  1819. arg multi                                                               00657180
  1820.    row=3;col=2                                                          00657770
  1821.    if index-(multi+1)*(scrbot-2) > 1 then                               00658360
  1822.      index=index-(multi+1)*(scrbot-2)                                   00658950
  1823. ./ R 00669000 00672000 $ 669590 590                   07/05/92 15:48:33         
  1824. NNR_Forward:                                                            00669590
  1825. arg num multi                                                           00670180
  1826.    row=3;col=2                                                          00670770
  1827.    If index+multi*(scrbot-2) < num+scrbot-2 then                        00671360
  1828.      index=index+(multi-1)*(scrbot-2)                                   00671950
  1829. ./ I 00678000          $ 678050 50                    07/05/92 15:48:33         
  1830. /*-----------------------------------------------------------------*/   00678050
  1831. /* Routine to handle TOP Command.                                  */   00678100
  1832. /*-----------------------------------------------------------------*/   00678150
  1833. NNR_Top:                                                                00678200
  1834.    row=3;col=2                                                          00678250
  1835.    index=0                                                              00678300
  1836. Return                                                                  00678350
  1837. /*-----------------------------------------------------------------*/   00678400
  1838. /* Routine to handle BOTTOM Command.                               */   00678450
  1839. /*-----------------------------------------------------------------*/   00678500
  1840. NNR_Bottom:                                                             00678550
  1841. arg num multi                                                           00678600
  1842.    row=3;col=2                                                          00678650
  1843.    if num//(multi*(scrbot-2))<>0 then                                   00678700
  1844.      index=(num%(multi*(scrbot-2)))*(multi*(scrbot-2))                  00678750
  1845.    else                                                                 00678800
  1846.      index=(num%(multi*(scrbot-2))-1)*(multi*(scrbot-2))                00678850
  1847. Return                                                                  00678900
  1848. ./ I 01063600          $ 1063610 10                   07/05/92 15:48:33         
  1849.    else If Abbrev('TOP',line,3) Then                                    01063610
  1850.      Call NNR_Top                                                       01063620
  1851.    else If Abbrev('BOTTOM',line,3) Then                                 01063630
  1852.      Call NNR_Bottom(item.0 2)                                          01063640
  1853.    else If Substr(line,1,1)='/' Then                                    01063650
  1854.      do                                                                 01063660
  1855.        locate_index=index-(scrbot-2) /* start at top of screen */       01063670
  1856.        tstline=substr(line,2)||' '||translate(column||' '||string)      01063680
  1857.        tstline=strip(tstline)                                           01063690
  1858.        do i=locate_index to item.0                                      01063700
  1859.          if index(translate(item.i),tstline)>0 then                     01063710
  1860.            leave                                                        01063720
  1861.        end                                                              01063730
  1862.        if i>item.0 then                                                 01063740
  1863.          do                                                             01063750
  1864.            index=index-(scrbot-2)                                       01063760
  1865.            message = 'Search string "'tstline'" not found.'             01063770
  1866.            Return                                                       01063780
  1867.          end                                                            01063790
  1868.        Call NNR_Bottom(i 2) /* get correct page */                      01063800
  1869.        if (i-index)>(scrbot-2) then                                     01063810
  1870.          do                                                             01063820
  1871.             row=i-index-scrbot+4                                        01063830
  1872.             col=42                                                      01063840
  1873.          end                                                            01063850
  1874.        else                                                             01063860
  1875.          do                                                             01063870
  1876.            row=i-index+2                                                01063880
  1877.            col=2                                                        01063890
  1878.          end                                                            01063900
  1879.      end                                                                01063910
  1880. ./ R 01260000 01261000 $ 1260590 590                  07/05/92 15:48:33         
  1881.    else If Line=7 then call NNR_Backward(2)                             01260590
  1882.    else If Line=8 then call NNR_Forward(item.0 2)                       01261180
  1883. ./ D 01595000 01620000                                07/05/92 15:48:33         
  1884. ./ I 01823800          $ 1823808 8                    07/05/92 15:48:33         
  1885.    else If Abbrev('TOP',line,3) Then                                    01823840
  1886.      Call NNR_Top                                                       01823880
  1887.    else If Abbrev('BOTTOM',line,3) Then                                 01823920
  1888.      Call NNR_Bottom(item.0 1)                                          01823960
  1889.    else If Substr(line,1,1)='/' Then                                    01063650
  1890.      do                                                                 01063660
  1891.        locate_index=index-(scrbot-2) /* start at top of screen */       01063670
  1892.        tstline=substr(line,2)||' '||translate(column||' '||string)      01063680
  1893.        tstline=strip(tstline)                                           01063690
  1894.        do i=locate_index to item.0                                      01063700
  1895.          if index(translate(item.i),tstline)>0 then                     01063710
  1896.            leave                                                        01063720
  1897.        end                                                              01063730
  1898.        if i>item.0 then                                                 01063740
  1899.          do                                                             01063750
  1900.            index=index-(scrbot-2)                                       01063760
  1901.            message = 'Search string "'tstline'" not found.'             01063770
  1902.            Return                                                       01063780
  1903.          end                                                            01063790
  1904.        Call NNR_Bottom(i 1) /* get correct page */                      01063800
  1905.        row=i-index+2                                                    01063880
  1906.        col=2                                                            01063890
  1907.      end                                                                01063910
  1908. ./ R 01861000 01862000 $ 1861590 590                  07/05/92 15:48:33         
  1909.    else If Line=7 then call NNR_Backward(1)                             01861590
  1910.    else If Line=8 then call NNR_Forward(item.0 1)                       01862180
  1911. ./ D 02128000 02153000                                07/05/92 15:48:33         
  1912. :READ  NNR$XEDI FX131S9  C1 UPDTS  07/06/92 06:56:16                            
  1913. ./ I 00334000          $ 334500 500                   07/05/92 23:18:19         
  1914.   Address COMMAND 'GLOBALV SET XHDRSORT'                                00334500
  1915. ./ I 01512000          $ 1512500 500                  07/05/92 23:18:19         
  1916.              Address COMMAND 'GLOBALV SET XHDRSORT'                     01512500
  1917. ./ I 01636000          $ 1636500 500                  07/05/92 23:18:19         
  1918. Address COMMAND 'GLOBALV GET XHDRSORT'                                  01636500
  1919. ./ I 01679000          $ 1679500 500                  07/05/92 23:18:19         
  1920.     sort_toggle=0                                                       01679500
  1921. ./ I 01688000          $ 1688500 500                  07/05/92 23:18:19         
  1922.     sort_toggle=left(xhdrsort,1)                                        01688500
  1923. ./ I 01723000          $ 1723300 300                  07/05/92 23:18:19         
  1924.           if sort_toggle^=left(xhdrsort,1) then                         01723200
  1925.             Call XHDR_Sort                                              01723600
  1926. ./ I 01728000          $ 1728300 300                  07/05/92 23:18:19         
  1927.           if sort_toggle then                                           01728200
  1928.             Call XHDR_Sort                                              01728600
  1929. ./ I 01823984          $ 1823989 5                    07/05/92 23:18:19         
  1930.    else If Abbrev('SORT',line,4) Then                                   01823989
  1931.        Call XHDR_Sort                                                   01823994
  1932. ./ I 02056000          $ 2056500 500                  07/05/92 23:18:19         
  1933.           Address COMMAND 'GLOBALV SET XHDRSORT' sort_toggle||xhdrsort  02091500
  1934. ./ I 02058000          $ 2058500 500                  07/05/92 23:18:19         
  1935.           Address COMMAND 'GLOBALV SET XHDRSORT' xhdrsort               02094500
  1936. ./ I 02069000          $ 2069020 20                   07/05/92 23:18:19         
  1937. /*-----------------------------------------------------------------*/   02069020
  1938. /* Routine to handle SORT Command.                                 */   02069040
  1939. /*-----------------------------------------------------------------*/   02069060
  1940. XHDR_Sort:                                                              02069080
  1941.    if sort_toggle then                                                  02069100
  1942.      do                                                                 02069120
  1943.        do i=1 to item.0                                                 02069140
  1944.          item.i=word(item.i,1)||'4a'x||prfx.i||'4a'x||item.i            02069160
  1945.        end                                                              02069180
  1946.        Call SortList                                                    02069200
  1947.        do i=1 to item.0                                                 02069220
  1948.          parse value item.i with . '4a'x tstpre '4a'x tstsub            02069240
  1949.          item.i=tstsub                                                  02069260
  1950.          prfx.i=tstpre                                                  02069280
  1951.        end                                                              02069300
  1952.        Sort_Toggle=0                                                    02069320
  1953.      end                                                                02069340
  1954.    else                                                                 02069360
  1955.      do                                                                 02069380
  1956.        do i=1 to item.0                                                 02069400
  1957.          parse upper value item.i with . '4a'x tstsub                   02069420
  1958.          if word(tstsub,1)='RE:' then                                   02069440
  1959.            tstsub=left(subword(tstsub,2),50)||'RE:'                     02069460
  1960.          else                                                           02069480
  1961.            tstsub=left(tstsub,50)||'   '                                02069500
  1962.          item.i=tstsub||'4a'x||prfx.i||'4a'x||item.i                    02069520
  1963.        end                                                              02069540
  1964.        Call SortList                                                    02069560
  1965.        do i=1 to item.0                                                 02069580
  1966.          parse value item.i with . '4a'x tstpre '4a'x tstsub            02069600
  1967.          item.i=tstsub                                                  02069620
  1968.          prfx.i=tstpre                                                  02069640
  1969.        end                                                              02069660
  1970.        Sort_Toggle=1                                                    02069680
  1971.      end                                                                02069700
  1972.    index=0                                                              02069720
  1973. Return                                                                  02069740
  1974. ./ I 02091000          $ 2091500 500                  07/05/92 23:18:19         
  1975.    Address COMMAND 'GLOBALV SET XHDRSORT' sort_toggle||xhdrsort         02091500
  1976. ./ I 02094000          $ 2094500 500                  07/05/92 23:18:19         
  1977.    Address COMMAND 'GLOBALV SET XHDRSORT' xhdrsort                      02094500
  1978. :READ  NNR$XEDI HISTORY  C2 UPDTS  08/05/92 09:13:04                            
  1979. ./ R 00006000 00062000 $ 25990 100                    05/09/92 22:13:14         
  1980. /* 05/09/92 S_1.3.0 (level set S_1.2.2e)                              */        
  1981. /*       * fix hang problem                                           */        
  1982. /*       * add "selected" functions log,mail,print and read           */        
  1983. /*       * optionally use nnr in conjunction with nnrlist (via STATIC)*/        
  1984. /*       * remove LINES restriction GILMART@lstc2vm.stortek.com       */        
  1985. /*       * reduce shli screen (eliminate groups with 0 articles)      */        
  1986. /*       * add PREFERence call to command line on every screen        */        
  1987. /*       * expand help to include general, pfk and cmd screen         */        
  1988. /*       * reduce overhead for articles read from shli                */        
  1989. /*       * add TOP/BOTTOM/LOCATE on PHLI/SHLI/HEADERS                 */        
  1990. /*       * add SORT command on Headers                                */        
  1991. /*       * add P_PersonalHLI from the command line                    */        
  1992. /*       * miscellany, tweak previous fixes                           */        
  1993. /*       * add full list on PHLI                                      */        
  1994. /* 07/26/92  version *_1.3.1                                          */        
  1995. /* 08/03/92  add GENERAL PUBLIC LICENSE                               */        
  1996. :READ  NNR$XEDI LICENSE  C1 UPDTS  12/15/92 06:17:55                            
  1997. ./ R 00064000 00078000 $ 64590 590                    08/03/92 14:20:03         
  1998. /**                                                                             
  1999.                 Copyright (C) 1991,1992  The MITRE Corporation                  
  2000.                                                                                 
  2001.                          GENERAL PUBLIC LICENSE                                 
  2002.                                                                                 
  2003. The MITRE Corporation provides this software to you without charge.             
  2004. It may be reproduced by you within the United States of America                 
  2005. provided all copyright notices are reproduced.  It cannot be made               
  2006. available to foreign governments unless done in accordance with                 
  2007. export control laws.                                                            
  2008.                                                                                 
  2009. This material may be reproduced by or for U. S. Government pursuant             
  2010. to the copyright license under the clause DFARS 252.227-7013.                   
  2011.                                                                                 
  2012. This software is provided "AS IS" and no warranties, expressed or               
  2013. implied, including but not limited to the implied warranties of                 
  2014. merchantability and fitness for a particular purpose, are made by The           
  2015. MITRE Corporation, it's officers, agents or employees.  You agree to            
  2016. indemnify and hold harmless The MITRE Corporation, it's officers,               
  2017. agents and employees from any and all costs and liability to third              
  2018. parties which will arise out of your use for this software                      
  2019.                                                                                 
  2020. **/                                                                             
  2021. :READ  NNR$XEDI REXTCPIP C2 UPDTS  06/21/92 12:48:45                            
  2022. ./ R 03228000 03239000 $ 3228990 990                  06/21/92 11:56:24         
  2023.   'NUCEXT REXTCPIP'                                            /*RXTcp*/03228990
  2024.   if rc = 1 then 'REXTCPIP'                                    /*RXTcp*/03229980
  2025.     socket = tcpOPEN(word(args,1),119,20)                      /*RXTcp*/03230970
  2026.   if tcprc ^= 0 then Return('-1 tcpopen '||tcprc)              /*RXTcp*/03231960
  2027.     'GLOBALV SETL SOCKET' socket                               /*RXTcp*/03232950
  2028.   status=STATUS_Response('')                                   /*RXTcp*/03233940
  2029. ./ R 03245000 03248000 $ 3245790 790                  06/21/92 11:56:24         
  2030.   Call tcpCLOSE socket                                         /*RXTcp*/03245790
  2031.   'NUCXDROP REXTCPIP'                                          /*RXTcp*/03246580
  2032.   if tcprc ^= 0 then                                           /*RXTcp*/03247370
  2033.     Return('-1 tcpclose '||tcprc)                              /*RXTcp*/03248160
  2034. ./ R 03269000 03270000 $ 3269590 590                  06/21/92 11:56:24         
  2035.         bytes_in = Socket('Read')                              /*RXTcp*/03269590
  2036.         If word(bytes_in,1)="-1" Then Return(bytes_in)         /*RXTcp*/03270180
  2037. ./ R 03293000 03294000 $ 3293590 590                  06/21/92 11:56:24         
  2038.         bytes_in = Socket('Read')                              /*RXTcp*/03293590
  2039.         If word(bytes_in,1)="-1" Then Return('-1 READ '||errno)/*RXTcp*/03294180
  2040. ./ R 03333280 03333300 $ 3333290 10                   06/21/92 11:56:24         
  2041.       bytes_in = Socket('Read')                              /*RXTcp*/  03545590
  2042.       If word(bytes_in,1)="-1" Then Return(bytes_in)         /*RXTcp*/  03546180
  2043. ./ R 03338000 03339000 $ 3338590 590                  06/21/92 11:56:24         
  2044.   bytes_out = Socket('Write')                                  /*RXTcp*/03338590
  2045.   If word(bytes_out,1)="-1" Then Return(bytes_out)             /*RXTcp*/03339180
  2046. ./ R 03423000          $ 3423290 290                  06/21/92 11:56:24         
  2047.       data=data||'0D0A'x                                       /*RXTcp*/03423290
  2048.       If word(Socket('Write'),1)='-1' Then                     /*RXTcp*/03423580
  2049. ./ R 03431000          $ 3431490 490                  06/21/92 11:56:24         
  2050.         If word(Socket('Write'),1)='-1' Then                   /*RXTcp*/03431490
  2051. ./ R 03435000          $ 3435490 490                  06/21/92 11:56:24         
  2052.       If word(Socket('Write'),1)='-1' Then                     /*RXTcp*/03435490
  2053. ./ R 03545000 03546000 $ 3545590 590                  06/21/92 11:56:24         
  2054.         bytes_in = Socket('Read')                              /*RXTcp*/03545590
  2055.         If word(bytes_in,1)="-1" Then Return(bytes_in)         /*RXTcp*/03546180
  2056. ./ R 03560000 03561000 $ 3560590 590                  06/21/92 11:56:24         
  2057.         bytes_in = Socket('Read')                              /*RXTcp*/03560590
  2058.         If word(bytes_in,1)="-1" Then Return(bytes_in)         /*RXTcp*/03561180
  2059. ./ I 03861000          $ 3862000 1000                 06/21/92 11:56:24         
  2060. /**********************************************************************/03862000
  2061. /* Add REXTCPIP interface, use socket stuff layout.                   */03863000
  2062. /**********************************************************************/03864000
  2063. socket:procedure expose socket data errno                      /*RXTcp*/03865000
  2064. parse arg RorW                                                 /*RXTcp*/03866000
  2065.   If RorW='Read' then                                          /*RXTcp*/03867000
  2066.     do                                                         /*RXTcp*/03868000
  2067.       Call tcpRECEIVE Socket,'WAIT','BIN'                      /*RXTcp*/03869000
  2068.       errno=tcprc                                              /*RXTcp*/03870000
  2069.       If tcprc^=0 then                                         /*RXTcp*/03871000
  2070.         Return('-1 '||errno)                                   /*RXTcp*/03872000
  2071.       data=tcpline.1                                           /*RXTcp*/03873000
  2072.       Return(length(tcpline.1))                                /*RXTcp*/03874000
  2073.     end                                                        /*RXTcp*/03875000
  2074.   Else if RorW='Write' then                                    /*RXTcp*/03876000
  2075.     do                                                         /*RXTcp*/03877000
  2076.       Call tcpSEND Socket,data,'BIN'                           /*RXTcp*/03878000
  2077.       errno=tcprc                                              /*RXTcp*/03879000
  2078.       If tcprc^=0 then                                         /*RXTcp*/03880000
  2079.         Return('-1 '||errno)                                   /*RXTcp*/03881000
  2080.       Return(0)                                                /*RXTcp*/03882000
  2081.     end                                                        /*RXTcp*/03883000
  2082.   Else Return('-1 Socket Unknown '||RorW)                      /*RXTcp*/03884000
  2083. return                                                         /*RXTcp*/03885000
  2084. :READ  NNR$XEDI RXSSTAT  C2 UPDTS  05/10/92 11:11:41                            
  2085. ./ D 00254000                                         05/10/92 10:38:03         
  2086. ./ R 00258000 00291000 $ 258990 990                   05/10/92 10:38:03         
  2087.   Address COMMAND 'SET CMSTYPE HT'                            /*static*/00128107
  2088.   Address COMMAND 'EXECIO * DISKR' servaddr 'GROUPS *',       /*static*/00128114
  2089.                   '(STEM LIST.'                               /*static*/00128121
  2090.   if rc^=0 then                                               /*static*/00128128
  2091.     Address COMMAND 'EXECIO * DISKR NNTP GROUPS *',           /*static*/00128135
  2092.                     '(STEM LIST.'                             /*static*/00128142
  2093.   Address COMMAND 'SET CMSTYPE RT'                            /*static*/00128149
  2094.   do i=1 to list.0                                            /*static*/00128156
  2095.     ptr=word(list.i,1)                                        /*static*/00128163
  2096.     if update.ptr.FrstLstLg^='' then                          /*static*/00128170
  2097.       do                                                      /*static*/00128170
  2098.         parse var list.i . last_act frst_act ynmx             /*static*/00128210
  2099.         parse var update.ptr.FrstLstLg frst_rem last_rem '$' log '$*$' .00264000
  2100.         gcount=gcount+1                                       /*static*/00265000
  2101.         item.gcount=ptr last_act frst_rem ynmx '1'            /*static*/00128266
  2102.         original.ptr=last_act frst_rem ynmx                   /*static*/00128272
  2103.       end                                                     /*static*/00128272
  2104.   end                                                         /*static*/00128272
  2105. ./ R 00294000          $ 294490 490                   05/10/92 10:38:03         
  2106. /* Call SortList */                                           /*static*/00222970
  2107. ./ R 00378000 00383000 $ 378690 690                   05/10/92 10:38:03         
  2108. Address COMMAND 'SET CMSTYPE HT'                              /*static*/00198080
  2109. Address COMMAND 'EXECIO * DISKR' servaddr 'GROUPS *',         /*static*/00198570
  2110.                 '(STEM LIST.'                                 /*static*/00199060
  2111. if rc^=0 then                                                 /*static*/00199550
  2112.   Address COMMAND 'EXECIO * DISKR NNTP GROUPS *',             /*static*/00200040
  2113.                   '(STEM LIST.'                               /*static*/00200530
  2114. Address COMMAND 'SET CMSTYPE RT'                              /*static*/00201020
  2115. ./ R 00387000 00403000 $ 387990 990                   05/10/92 10:38:03         
  2116. do l=1 to list.0                                              /*static*/00203300
  2117.   groupchk=word(list.l,1)                                     /*static*/00204290
  2118.   if censor.groupchk='' then                                  /*static*/00205280
  2119.     do                                                        /*static*/00206270
  2120.       i=i+1                                                   /*static*/00207260
  2121.       item.i=groupchk                                         /*static*/00208250
  2122.       original.groupchk=subword(list.l,2)                     /*static*/00209240
  2123.       if new.groupchk^='' then                                /*static*/00210230
  2124.         do                                                    /*static*/00211220
  2125.           k=k+1                                               /*static*/00212210
  2126.           hli.HiQual.k=groupchk                               /*static*/00213200
  2127.         end                                                   /*static*/00214190
  2128.     end                                                       /*static*/00215180
  2129. end                                                           /*static*/00215180
  2130. ./ R 00409000          $ 409490 490                   05/10/92 10:38:03         
  2131. /* Call SortList */                                           /*static*/00222970
  2132. :READ  NNR$XEDI STKSPLIT C1 UPDTS  07/06/92 07:21:03                            
  2133. ./ I 02026024          $ 2026026 2                    07/06/92 07:12:18         
  2134.    Address COMMAND 'GLOBALV GET HEADERS'                                01900000
  2135. ./ R 02026040 02026072 $ 2026043 3                    07/06/92 07:12:18         
  2136.      'msg Fetching Article Number' Word(Sel_Art_Log.i,1)                02026043
  2137.      'refresh'                                                          02026046
  2138.      notebook='NNRLOG'                                                  02026049
  2139.      Address COMMAND 'EXECIO 1 DISKW' notebook 'NOTEBOOK A 0 V 132',    02026052
  2140.                                           '(STRING' copies('=',72)      02026055
  2141.      status=TEXT_Process(headers Word(Sel_Art_Log.i,1), 'COMMAND', ,    02026058
  2142.          'EXECIO 1 DISKW' notebook 'NOTEBOOK A 0 (var DATA )')          02026061
  2143.      If word(status,1)='-1' Then Return(Status)                         02026064
  2144.      Status=Check_Status()                                              02026067
  2145.      Address COMMAND 'EXECIO 0 DISKW' notebook 'NOTEBOOK A (finis'      02026070
  2146. ./ I 03333000          $ 3333020 20                   07/06/92 07:12:18         
  2147. /**********************************************************************/03333020
  2148. /*   Process TEXT Response (ends with a .)                            */03333040
  2149. /**********************************************************************/03333060
  2150. TEXT_Process: procedure expose socket item.                             03333080
  2151. parse arg command, Proc_Env, Proc_Cmd                                   03333100
  2152.   status=NEWS_Command(command)                                          03333120
  2153.   If word(Status,1)='-1' then return Status                             03333140
  2154.                                                                         03333160
  2155.   Status=0                                                              03333180
  2156.   line = ''                                                             03333200
  2157.   LineCount = 0                                                         03333220
  2158.   pattern=E2A('.')                                                      03333240
  2159.   Do ReadCount = 1                                                      03333260
  2160.       bytes_in = Socket('Read', socket, 'data')                         03333280
  2161.       If bytes_in="-1" Then Return('-1 READ' errno)                     03333300
  2162.       If bytes_in=0 then leave ReadCount                                03333320
  2163.       line = line || data                                               03333340
  2164.       do LineCount = LineCount                                          03333360
  2165.           parse value line with data '0d0a'x +0 test +2 line            03333380
  2166.           if test=='' then do                                           03333400
  2167.               line = data                                               03333420
  2168.               leave LineCount;  end                                     03333440
  2169.           if left(data,1)==pattern then do                              03333460
  2170.               data = substr(data,2)                                     03333480
  2171.               if data=='' then leave ReadCount;  end                    03333500
  2172.           select                                                        03333520
  2173.               /* Other "when" clauses ad lib.  */                       03333540
  2174.               when Proc_Env='COMMAND' then if LineCount>0 then do       03333560
  2175.                   data = A2E(data)                                      03333580
  2176.                   /* Need test for disk full and such errors here. */   03333600
  2177.                   address 'COMMAND' Proc_Cmd;  end                      03333620
  2178.               end  /* select */                                         03333640
  2179.           end LineCount;  end ReadCount                                 03333660
  2180.   Return(status)                                                        03333680
  2181. :READ  NNR_130  README   C1 UPDTS  07/26/92 12:05:06                            
  2182. NNR (S_1.3.0) and (R_1.3.0) update announcement.                                
  2183.                                                                                 
  2184. SPECIAL THANKS:                                                                 
  2185.     Arty Ecock @ City University New York                                       
  2186.     Ken Hornstein @ Pennsylvania State University                               
  2187.                                                                                 
  2188. NOTE: 1.3.0 (1.2.2e) has been re-sequenced. if you want to see how              
  2189. we got from point d to point e you will want to examine "updates                
  2190. vers122e". there should be no difference between 1.3.0 and 1.2.2e               
  2191. except your old "nnr sitefix" will no longer work with the new                  
  2192. sequencing. you will find "nnr samplefx" in "updates vers130"                   
  2193. which can be used as an example replacement for "nnr sitefix".                  
  2194.                                                                                 
  2195. the following 2 fixes and a few fixes from 1.2.2d were done to                  
  2196. support the ability to add multiple personal_subscriptions.                     
  2197.                                                                                 
  2198.    * streamline hli processing, simplifies all_news, new_news*                  
  2199.    * breakout hli into individual parts, indexed separately  *                  
  2200.                                                                                 
  2201. all personal PHLI (except Subscriptions) can be created and/or destroyed        
  2202. during the same session.                                                        
  2203.                                                                                 
  2204.    * dynamic addition/subtraction to/from pers_subs          *                  
  2205.                                                                                 
  2206. xedit will now use filemode "s" to prevent the possibility of saving or         
  2207. or filing on an unsuspecting user's account. "FILE" and "SAVE" are now          
  2208. available from the article screen.                                              
  2209.                                                                                 
  2210.    * edit mode s                                             *                  
  2211.                                                                                 
  2212. when a user has been connected to the server for a long time there              
  2213. would be a few groups that had additional articles arrive during                
  2214. the time connected. when these additional articles were read a negative         
  2215. article count on the SHLI screen would result. this has been corrected.         
  2216.                                                                                 
  2217.     * fix negative article count (display)                    *                 
  2218.                                                                                 
  2219. there has been some debate about the validity of nnr subscribing a              
  2220. user to a group by simply reading an article. in an effort to minimize          
  2221. this behavior i have restricted the auto-subscribe feature to reading           
  2222. articles and not browsing headers. (creating/building personal PHLIs            
  2223. will require the use of the Sub/UnS PFK)                                        
  2224.                                                                                 
  2225.     * only subscribe if article has been read while in headers*                 
  2226.                                                                                 
  2227. since some systems have a low tolerance for virtual storage i have              
  2228. attempted to honor the defined limit for lines more exactly. formerly,          
  2229. nnr could have been off by as much as 8k+.                                      
  2230.                                                                                 
  2231.     * fine grain lines/article limit analysis                 *                 
  2232.                                                                                 
  2233. because of some deadlines i could not fully add a contribution from             
  2234. GILMART@lstc2vm.stortek.com. the following update reflects the portion          
  2235. that could be adapted prior to re-sequencing. there will more on this           
  2236. fine contribution later.                                                        
  2237.                                                                                 
  2238.     * fix from GILMART@lstc2vm.stortek.com (preferences hook) *                 
  2239.                                                                                 
  2240. the ability to unmark a thread was flawed. this would occur when an             
  2241. article was marked prior to threading. headers then threaded. article           
  2242. was then unmarked but upon returning from the thread the article is             
  2243. again marked. thanks gil.                                                       
  2244.                                                                                 
  2245.     * fix from GILMART@lstc2vm.stortek.com ( unmark thread)   *                 
  2246.                                                                                 
  2247. *****************************************************************               
  2248. many thanks to the University of Stuttgart and the                              
  2249. Instituto Tecnologico de Monterrey for the anonymous ftp                        
  2250. -----------                                                                     
  2251. Anonymous FTP to VMTECQRO.QRO.ITESM.MX or 132.254.90.1                          
  2252. CD NNR                                                                          
  2253.                                                                                 
  2254. 8:00-23:00 CST Mon. to Fri.                                                     
  2255. 9:00-16:00 CST Sat. & Sun.                                                      
  2256. -----------                                                                     
  2257. FTP rusmv1.rus.uni-stuttgart.de or 129.69.1.12                                  
  2258. cd /soft/kommunikation/news/beginner/software/nnr                               
  2259. -----------                                                                     
  2260.                                                                                 
  2261.    source.vers130 - nnr sequenced source and support files                      
  2262.    updates.vers130  - individual updates                                        
  2263.    nnrrxtcp.vers130 - nnr with rextcpip                                         
  2264.    nnrrxsoc.vers130 - nnr with rxsocket (requires fal version 2)                
  2265.    nnrrxtcp.noas130 - nnr (without rextcpip)                                    
  2266.    nnrrxsoc.noas130 - nnr (without rxsocket) (requires fal version 2)           
  2267.    nnrdocs.vers130 - nnr users guide (script and postscript)                    
  2268.    updates.vers122e  - individual updates to get to version 1.3.0               
  2269.                                                                                 
  2270.                                                                                 
  2271. the above mentioned files are in a punch format and the following               
  2272. procedure will unpack them.                                                     
  2273.                                                                                 
  2274.        SPOOL PUN *                                                              
  2275.        PUNCH Filename Filetype <fm> ( NOH                                       
  2276.        ORDER RDR <spid>                                                         
  2277.        READCARD * * <fm>                                                        
  2278.                                                                                 
  2279. use the command "gnnrx" to generate the rxsocket version and                    
  2280. "gnnrt" for the rextcpip version from source.vers130 and                        
  2281. updates.vers130.                                                                
  2282.                                                                                 
  2283. In NNR exec:                                                                    
  2284.    set variable ipaddr : ip address                                             
  2285.                 mailer : mail machine                                           
  2286.           organization : your organization                                      
  2287.               thisnode : yournode.yourdomain                                    
  2288.                                                                                 
  2289.    make appropriate update for link to production tcpmaint 592                  
  2290.    make appropriate update for printing                                         
  2291.                                                                                 
  2292. See "NNR SAMPLEFX" - update, make changes to this file for your site            
  2293. and file it as "NNR SITEFIX".                                                   
  2294.                                                                                 
  2295. /pc                                                                             
  2296.                                                                                 
  2297. -------------                                                                   
  2298. Paul Campbell                                                                   
  2299. The MITRE Corporation                                                           
  2300. Bedford, MA, USA 01730 : (617)271-3984                                          
  2301. nnrprod@mbvm.mitre.org                                                          
  2302. :READ  NNR_131  README   C1 UPDTS  12/15/92 06:53:16                            
  2303. NNR (S_1.3.1) and (R_1.3.1) update announcement.                                
  2304.                                                                                 
  2305. SPECIAL THANKS:                                                                 
  2306.     Arty Ecock @ City University New York                                       
  2307.     Ken Hornstein @ Pennsylvania State University                               
  2308.                                                                                 
  2309.                                                                                 
  2310. * NNR                                                                           
  2311.                                                                                 
  2312. /*       * fix hang problem                                           */        
  2313.                                                                                 
  2314. this was fixed as part of the nnr version 130 distribution. rather than         
  2315. make a new release or bring back nnr version 130 and re-sequence again          
  2316. i sent out an announcement and updated the distribution.                        
  2317.                                                                                 
  2318. /*       * add "selected" functions log,mail,print and read           */        
  2319.                                                                                 
  2320. this may be a shock to some users.  the "Selected" pfk will now be              
  2321. more selective with what is accepted on the Headers Screen.  formerly           
  2322. you were allowed to use ANY character to mark an article for reading.           
  2323. now you may only read and article when a "r" (or "R") is placed next            
  2324. to the article.  you now have the ability to place other characters             
  2325. with different meaning on the Headers Screen.  nnr now accepts "l"              
  2326. (or "L") to mean Log this article, "m" (or "M") to Mail this article            
  2327. and "p" (or "P") to Print this article.  once all the articles are              
  2328. marked as desired and the "Selected" pfk is pressed nnr will start              
  2329. the various processes as indicated.  for example, if you have put a             
  2330. "l" next to any articles nnr will log all articles marked.                      
  2331. GILMART@lstc2vm.stortek.com has added some visual effects for the log           
  2332. mechanism so the users wont panic (thanks gil).                                 
  2333.                                                                                 
  2334. /*       * optionally use nnr in conjunction with nnrlist (via STATIC)*/        
  2335.                                                                                 
  2336. for those sites that use nnrlist you will need to set the "STATIC"              
  2337. globalv in "nnr exec" if you want nnr to use the static list.  it               
  2338. was suggested to me that it would be simpler to add the logic one               
  2339. time rather than retrofit "NNR$XEDI RXSSTAT" fix every release.  my             
  2340. only qualm with this sort of mechanism is having a lot of dead code             
  2341. in pivotal areas.  so i didn't apply this technique to the REXTCPIP             
  2342. vs RXSOCKET code.  (thanks doug@ysub.ysu.edu)                                   
  2343.                                                                                 
  2344. /*       * remove LINES restriction GILMART@lstc2vm.stortek.com       */        
  2345.                                                                                 
  2346. one of the problems with my implementation of the "l","m","p" and "r"           
  2347. fix was it's sensitivity to the article's length.  if the size                  
  2348. of the article > the nnr allowable then we only grabbed the nnr                 
  2349. allowable (could be set via PREFER Screen).  what gil has done was              
  2350. remove the the upper limit restriction by not pulling in the article            
  2351. in its entirety prior to processing but bring it in incrementally and           
  2352. processing it in part.  this has only been applied to "log" where it            
  2353. is not uncommon to find large binaries.                                         
  2354.                                                                                 
  2355. /*       * reduce shli screen (eliminate groups with 0 articles)      */        
  2356.                                                                                 
  2357. "Reduce" on the SHLI Screen is new, it replaces the "U_Prefer" pfk.             
  2358. it behaves like the "Reduce" pfk on the Headers screen only it                  
  2359. eliminates groups with 0 articles.  unlike the "Reduce" on the                  
  2360. Headers Screen it is not recursive and will not revert back to the              
  2361. original setting.                                                               
  2362.                                                                                 
  2363. /*       * add PREFERence call to command line on every screen        */        
  2364.                                                                                 
  2365. the "U_Prefer" pfk has been made into a command and is available on             
  2366. every screen.  this method of operation allows much more flexibility            
  2367. when needing to change values.                                                  
  2368.                                                                                 
  2369. /*       * expand help to include general, pfk and cmd screen         */        
  2370.                                                                                 
  2371. the help has been changed to handle more than one panel per screen.             
  2372. now there are now three panels describing each screen: one for                  
  2373. general description, another describing the pfk operation and the               
  2374. third describes all commands available.                                         
  2375.                                                                                 
  2376. /*       * reduce overhead for articles read from shli                */        
  2377.                                                                                 
  2378. eliminated redundant server commands.  this suggestion cam from Van             
  2379. Uytven Herman <SYSTHVU@cc1.kuleuven.ac.be>.  this change only affects           
  2380. "Articles" on the SHLI Screen.                                                  
  2381.                                                                                 
  2382. /*       * add TOP/BOTTOM/LOCATE on PHLI/SHLI/HEADERS                 */        
  2383.                                                                                 
  2384. the TOP and BOTTOM commands have been added to all screens that could           
  2385. make use of them, they behave similarly to the xedit command but are            
  2386. calculated.  the LOCATE command "/string" is available on the SHLI              
  2387. Screen and the Headers Screen.  it to resembles the xedit LOCATE                
  2388. function.  once the "string" has been found use the "=" to find the             
  2389. next occurrence. "Forward" and "Backward" were also streamlined.                
  2390.                                                                                 
  2391. /*       * add SORT command on Headers                                */        
  2392.                                                                                 
  2393. this is something i have been resisting because i plan to open the              
  2394. Headers Screen up to be more xedit than display.  i wasn't sure when            
  2395. this would happen so we now have a sort command.  "sort" will toggle            
  2396. between sorted by article number (server order) and sorted by                   
  2397. subject.  it should behave correctly regardless of the levels of                
  2398. "Reduce" and "Thread".                                                          
  2399.                                                                                 
  2400. /*       * add P_PersonalHLI from the command line                    */        
  2401.                                                                                 
  2402. nnr accepts a server group.ext or "P_S" as arguments from the "Ready"           
  2403. prompt.  since we had the capability in 1.3.0 of building Personal              
  2404. High Level Indexes i added the capability of accessing a PHLI as an             
  2405. argument, much like the "P_S".  the "P_" part (equates to                       
  2406. "Personal_") plus the defined PHLI (case sensitive) part together               
  2407. make up the argument passed to nnr.  for example, if i had defined              
  2408. "VM" as my HLI qualifier it would appear on the PHLI Screen as                  
  2409. "Personal_VM" and could be access as an argument as "P_VM".                     
  2410.                                                                                 
  2411. /*       * miscellany, tweak previous fixes                           */        
  2412.                                                                                 
  2413. miscellaneous adjustments.                                                      
  2414.                                                                                 
  2415. /*       * add full list on PHLI                                      */        
  2416.                                                                                 
  2417. add ability to check out the entire set of available groups using               
  2418. PFK "FullList". this will behave like the PFK "New_News" in all                 
  2419. respects.                                                                       
  2420.                                                                                 
  2421. * NNRLIST                                                                       
  2422.                                                                                 
  2423. /*       * simplify test pattern code                                 */        
  2424.                                                                                 
  2425. eliminate the use of substr and use left which proved more forgiving            
  2426. when dealing with unknown string lengths.                                       
  2427.                                                                                 
  2428. /*       * speed up sort GILMART@lstc2vm.stortek.com                  */        
  2429.                                                                                 
  2430. applied the same logic from nnr "sortlist" routine with the tweaks by           
  2431. GILMART@lstc2vm.stortek.com.                                                    
  2432.                                                                                 
  2433. /*       * add LIST or GROUP option (article count)                   */        
  2434.                                                                                 
  2435. there are now 2 options when running nnrlist: "LIST" which uses only            
  2436. the server "LIST" command to collect the active list or the "GROUP"             
  2437. option which not only uses the server "LIST" command but will refine            
  2438. the article counts using the server "GROUP" command.  the list option           
  2439. has the advantage of speed but the group option has the advantage of            
  2440. a more accurate article count.  default is "GROUP".                             
  2441.                                                                                 
  2442. /*       * add error checks                                           */        
  2443.                                                                                 
  2444. nnrlist now checks all return codes from the server and will not                
  2445. replace the groups list when there is a problem with the server.                
  2446.                                                                                 
  2447. /*       * add version number                                         */        
  2448.                                                                                 
  2449. added version number for reporting problems.                                    
  2450.                                                                                 
  2451. *****************************************************************               
  2452. many thanks to the University of Stuttgart and the                              
  2453. Instituto Tecnologico de Monterrey for the anonymous ftp                        
  2454. -----------                                                                     
  2455. Anonymous FTP to VMTECQRO.QRO.ITESM.MX or 132.254.90.1                          
  2456. CD NNR                                                                          
  2457.                                                                                 
  2458. 8:00-23:00 CST Mon. to Fri.                                                     
  2459. 9:00-16:00 CST Sat. & Sun.                                                      
  2460. -----------                                                                     
  2461. FTP rusmv1.rus.uni-stuttgart.de or 129.69.1.12                                  
  2462. cd /soft/kommunikation/news/beginner/software/nnr                               
  2463. -----------                                                                     
  2464.                                                                                 
  2465.    source.vers130 - nnr sequenced source and support files                      
  2466.    updates.vers131  - individual updates                                        
  2467.    nnrrxtcp.vers131 - nnr with rextcpip                                         
  2468.    nnrrxsoc.vers131 - nnr with rxsocket (requires fal version 2)                
  2469.    nnrrxtcp.noas131 - nnr (without rextcpip)                                    
  2470.    nnrrxsoc.noas131 - nnr (without rxsocket) (requires fal version 2)           
  2471.    nnrdocs.vers131 - nnr users guide (script and postscript)                    
  2472.                                                                                 
  2473.                                                                                 
  2474. the above mentioned files are in a punch format and the following               
  2475. procedure will unpack them.                                                     
  2476.                                                                                 
  2477.        SPOOL PUN *                                                              
  2478.        PUNCH Filename Filetype <fm> ( NOH                                       
  2479.        ORDER RDR <spid>                                                         
  2480.        READCARD * * <fm>                                                        
  2481.                                                                                 
  2482. use the command "gnnrx" to generate the rxsocket version and                    
  2483. "gnnrt" for the rextcpip version from source.vers130 and                        
  2484. updates.vers130.                                                                
  2485.                                                                                 
  2486. In NNR exec:                                                                    
  2487.    set variable ipaddr : ip address                                             
  2488.                 mailer : mail machine                                           
  2489.           organization : your organization                                      
  2490.               thisnode : yournode.yourdomain                                    
  2491.                                                                                 
  2492.    make appropriate update for link to production tcpmaint 592                  
  2493.    make appropriate update for printing                                         
  2494.                                                                                 
  2495. See "NNR SAMPLEFX" - update, make changes to this file for your site            
  2496. and file it as "NNR SITEFIX".                                                   
  2497.                                                                                 
  2498. /pc                                                                             
  2499.                                                                                 
  2500. -------------                                                                   
  2501. Paul Campbell                                                                   
  2502. The MITRE Corporation                                                           
  2503. Bedford, MA, USA 01730 : (617)271-3984                                          
  2504. nnrprod@mbvm.mitre.org                                                          
  2505. :READ  NNRFTP   README   C1 UPDTS  07/26/92 12:06:17                            
  2506. NNR (S_1.3.0) and (R_1.3.0) update announcement.                                
  2507.                                                                                 
  2508. SPECIAL THANKS:                                                                 
  2509.     Arty Ecock @ City University New York                                       
  2510.     Ken Hornstein @ Pennsylvania State University                               
  2511.                                                                                 
  2512. *****************************************************************               
  2513. many thanks to the University of Stuttgart and the                              
  2514. Instituto Tecnologico de Monterrey for the anonymous ftp                        
  2515. -----------                                                                     
  2516. Anonymous FTP to VMTECQRO.QRO.ITESM.MX or 132.254.90.1                          
  2517. CD NNR                                                                          
  2518.                                                                                 
  2519. 8:00-23:00 CST Mon. to Fri.                                                     
  2520. 9:00-16:00 CST Sat. & Sun.                                                      
  2521. -----------                                                                     
  2522. FTP rusmv1.rus.uni-stuttgart.de or 129.69.1.12                                  
  2523. cd /soft/kommunikation/news/beginner/software/nnr                               
  2524. -----------                                                                     
  2525.                                                                                 
  2526.    source.vers130 - nnr sequenced source and support files                      
  2527.    updates.vers130  - individual updates                                        
  2528.    nnrrxtcp.vers130 - nnr with rextcpip                                         
  2529.    nnrrxsoc.vers130 - nnr with rxsocket (requires fal version 2)                
  2530.    nnrrxtcp.noas130 - nnr (without rextcpip)                                    
  2531.    nnrrxsoc.noas130 - nnr (without rxsocket) (requires fal version 2)           
  2532.    nnrdocs.vers130 - nnr users guide (script and postscript)                    
  2533.    updates.vers122e  - individual updates to get to version 1.3.0               
  2534.                                                                                 
  2535.                                                                                 
  2536. the above mentioned files are in a punch format and the following               
  2537. procedure will unpack them.                                                     
  2538.                                                                                 
  2539.        SPOOL PUN *                                                              
  2540.        PUNCH Filename Filetype <fm> ( NOH                                       
  2541.        ORDER RDR <spid>                                                         
  2542.        READCARD * * <fm>                                                        
  2543.                                                                                 
  2544. use the command "gnnrx" to generate the rxsocket version and                    
  2545. "gnnrt" for the rextcpip version from source.vers130 and                        
  2546. updates.vers130.                                                                
  2547.                                                                                 
  2548. In NNR exec:                                                                    
  2549.    set variable ipaddr : ip address                                             
  2550.                 mailer : mail machine                                           
  2551.           organization : your organization                                      
  2552.               thisnode : yournode.yourdomain                                    
  2553.                                                                                 
  2554.    make appropriate update for link to production tcpmaint 592                  
  2555.    make appropriate update for printing                                         
  2556.                                                                                 
  2557. See "NNR SAMPLEFX" - update, make changes to this file for your site            
  2558. and file it as "NNR SITEFIX".                                                   
  2559.                                                                                 
  2560. /pc                                                                             
  2561.                                                                                 
  2562. -------------                                                                   
  2563. Paul Campbell                                                                   
  2564. The MITRE Corporation                                                           
  2565. Bedford, MA, USA 01730, (617)271-3984                                           
  2566. nnrprod@mbvm.mitre.org                                                          
  2567. :READ  NNRHELP  $XSCREEN C2 UPDTS  10/29/92 12:09:02                            
  2568. To use this screen you simply move the cursor to the desired Primary            
  2569. High Level Index (PHLI) and hit one of the Program Function Keys                
  2570. (PFK).  The PHLI is the principal part of the name of a group.  All             
  2571. groups with the same PHLI are related in some way.  For example                 
  2572. "comp" represents all groups associated with computing.  Positioning            
  2573. the cursor on top of "comp" and pressing a PFK will initiate some               
  2574. action.  Depending on the PFK, you can read all the news, read only             
  2575. the new news or exit back to CMS.                                               
  2576.                                                                                 
  2577. There are currently two special purpose PHLIs, Personal_Subscriptions           
  2578. and New_Groups_Since_mm/dd/yy.  These are slightly different from the           
  2579. other PHLIs since they are built by NNR and not directly related to             
  2580. the server.  The Personal_Subscription PHLI is a collection of all              
  2581. the groups you have subscribed to and New_Groups_Since_mm/dd/yy are             
  2582. all those groups new to the server from the specified date.                     
  2583.                                                                                 
  2584.                                                                                 
  2585.                                                                                 
  2586. PFK Help     - This display.                                                    
  2587. PFK All_News - Access all the news that is available. Articles read are         
  2588.                not remembered. Move cursor to desired topic and press           
  2589.                All_News PFK.                                                    
  2590. PFK Quit     - Exit NNR program.                                                
  2591. PFK New_News - Access news that is new to you according to "Groups Read"        
  2592.                file on your account. Articles read are remembered.              
  2593. PFK Backward - Scrolls backward one screen.                                     
  2594. PFK Forward  - Scrolls forward one screen.                                      
  2595. PFK FullList - Access news that is new to you according to "Groups Read"        
  2596.                file on your account. All groups are collected. Articles         
  2597.                read are remembered.                                             
  2598.                                                                                 
  2599.                                                                                 
  2600.                                                                                 
  2601.                                                                                 
  2602.                                                                                 
  2603.                                                                                 
  2604. PREFER - Display Preferences Screen                                             
  2605. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  2606.          to NNR. If your are using the RXSOCKET version you may use             
  2607.          other TCPIP applications.                                              
  2608. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  2609.          current position to the command line.                                  
  2610. TOP    - Operates like the Xedit command TOP, locates the first PHLI            
  2611.          and displays the associated screen.                                    
  2612. BOTtom - Operates like the Xedit command BOTTOM, locates the last PHLI          
  2613.          and displays the associated screen.                                    
  2614.                                                                                 
  2615.                                                                                 
  2616.                                                                                 
  2617.                                                                                 
  2618.                                                                                 
  2619.                                                                                 
  2620.                                                                                 
  2621.                                                                                 
  2622. To use this screen you simply move the cursor to the desired                    
  2623. Secondary High Level Index (SHLI) and hit one of the Program Function           
  2624. Keys (PFK).  The SHLI is better known as a group or a news group.               
  2625. Each news group is comprised of articles.  The number of articles and           
  2626. posting information accompanies each group.  You may check out a                
  2627. particular group using the PFKs associated with this screen.                    
  2628.                                                                                 
  2629. You will notice that some of the groups are highlighted and some are            
  2630. not.  A group becomes highlighted when you subscribe "Sub/UnS" or               
  2631. read the group while in "New_News".  This highlighted group will                
  2632. eventually appear in your Personal_Subscriptions group.                         
  2633.                                                                                 
  2634. The "Power" feature is used in conjunction with the "Articles" PFK.             
  2635. When "Power" is ON you will be able to move through all the articles            
  2636. in all the groups using only the "Next" PFK.  When "Power" is OFF you           
  2637. will return to the SHLI/Group Screen after reading the last article             
  2638. in each group.                                                                  
  2639.                                                                                 
  2640. PFK Help     - This display.                                                    
  2641. PFK Articles - Access articles sequentially by article number. Starts with      
  2642.                the first available article. Cursor position respected.          
  2643. PFK Quit     - Exits this screen.                                               
  2644. PFK Headers  - Preferred path to articles. Collects subject and other           
  2645.                information for display. Cursor position respected.              
  2646. PFK Post     - Initiates posting procedure. Only group passed to the            
  2647.                posting screen. Cursor position respected.                       
  2648. PFK Mark     - Mark the group as been read, zeros the article count.            
  2649. PFK Backward - Scrolls backward one screen.                                     
  2650. PFK Forward  - Scrolls forward one screen.                                      
  2651. PFK Sub/UnS  - Subscribe or UnSubscribe to a news group.                        
  2652. PFK UpdtGrp  - Updates the Group.                                               
  2653. PFK Reduce   - Eliminate all groups with 0 articles from the display.           
  2654. PFK Power    - Toggle between current Power setting. Initially OFF.             
  2655.                                                                                 
  2656.                                                                                 
  2657.                                                                                 
  2658. PREFER - Display Preferences Screen                                             
  2659. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  2660.          to NNR. If your are using the RXSOCKET version you may use             
  2661.          other TCPIP applications.                                              
  2662. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  2663.          current position to the command line.                                  
  2664. UPDate - Inventories all groups associated with the current SHLI and            
  2665.          displays the revised article count. Works like the "UpdtGrp"           
  2666.          PFK but on all groups.                                                 
  2667. TOP    - Operates like the Xedit command TOP, locates the first SHLI            
  2668.          and displays the associated screen.                                    
  2669. BOTtom - Operates like the Xedit command BOTTOM, locates the last SHLI          
  2670.          and displays the associated screen.                                    
  2671. /str   - Operates like the Xedit command Locate/, where "str" is any            
  2672.          literal to be searched for. Case is ignored. Use "=" to                
  2673.          continue search.                                                       
  2674.                                                                                 
  2675.                                                                                 
  2676. To use this screen you simply move the cursor to the desired article            
  2677. and use a Program Function Key (PFK) to initiate some action, see the           
  2678. PFK descriptions.  Replacing the "." with (L)og, (M)ail, (P)rint or             
  2679. (R)ead and using the Selected PFK will initiate bulk activities.  For           
  2680. example, replacing the "." with an "P" for several articles and                 
  2681. pressing the "Selected" PFK will Print all the marked articles.  The            
  2682. "*" signifies you have read this article during the current session             
  2683. or a previous session and the "@" marks articles where some                     
  2684. "Selected" action has taken place.                                              
  2685.                                                                                 
  2686. On the Headers Screen in the upper left corner you will notice "R 0"            
  2687. as an initial setting.  This is a "Reduce" indicator, which counts              
  2688. the number of times you have issued the Reduce PFK.  Use the Quit PFK           
  2689. to bring it back to zero.                                                       
  2690.                                                                                 
  2691.                                                                                 
  2692.                                                                                 
  2693.                                                                                 
  2694. PFK Help     - This display.                                                    
  2695. PFK Article  - Read a specific article. Cursor position respected.              
  2696. PFK Quit     - Exit Headers screen.                                             
  2697. PFK Selected - Mark each article at the "." with an "x". Mark as many as        
  2698.                desired, then press the Selected PFK.                            
  2699. PFK Post     - Initiates posting procedure. The group and subject are           
  2700.                passed to the posting screen. Cursor position respected.         
  2701. PFK Mrk2Here - Marks all articles as read, up to the cursor position or         
  2702.                when cursor is on Command line, ALL articles are marked.         
  2703. PFK Backward - Scrolls backward one screen.                                     
  2704. PFK Forward  - Scrolls forward one screen.                                      
  2705. PFK Thread   - Collects articles based on subject.                              
  2706. PFK Reduce   - Eliminates read articles, "reduces" the number displayed.        
  2707. PFK Mrk/UMrk - Mark Article/UnMark Article toggle.                              
  2708. PFK NxtGroup - Moves to the next group in the SHLI list.                        
  2709.                                                                                 
  2710.                                                                                 
  2711.                                                                                 
  2712. PREFER - Display Preferences Screen                                             
  2713. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  2714.          to NNR. If your are using the RXSOCKET version you may use             
  2715.          other TCPIP applications.                                              
  2716. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  2717.          current position to the command line.                                  
  2718. THRead - Thread expects a literal string as an argument. for example,           
  2719.          try "THR abc", this will display all articles with the string          
  2720.          "abc","ABC" or any other combination.                                  
  2721. NGroup - Moves to the next group in the SHLI list (with articles).              
  2722. PGroup - Moves to the previous group in the SHLI list (with articles).          
  2723. TOP    - Operates like the Xedit command TOP, locates the first Header          
  2724.          and displays the associated screen.                                    
  2725. BOTtom - Operates like the Xedit command BOTTOM, locates the last Header        
  2726.          and displays the associated screen.                                    
  2727. /str   - Operates like the Xedit command Locate/, where "str" is any            
  2728.          literal to be searched for. Case is ignored. Use "=" to cont.          
  2729. SORT   - Toggles between sorted "Subject" and default server order              
  2730. The Post Screen(2) allows you to modify any of the highlighted                  
  2731. fields.  It is highly recommended that no field be left blank; in               
  2732. some cases the MAIL or POST will fail.  When sending MAIL use the               
  2733. following formats for the "To:" header (nicknames are supported):               
  2734.                                                                                 
  2735.       userid   *or*   userid@nodeid   *or*   userid@nodeid.domain.ext           
  2736.                (* incorporate personal names as follows *)                      
  2737.    Firstname Lastname <userid@nodeid.domain.ext>                                
  2738.                        userid@nodeid.domain.ext  (Firstname Lastname)           
  2739.                                                                                 
  2740. Bear in mind when you post an article that you are representing both            
  2741. yourself and your organization to a potentially large audience.                 
  2742.                                                                                 
  2743.                                                                                 
  2744.                                                                                 
  2745.                                                                                 
  2746.                                                                                 
  2747.                                                                                 
  2748. PFK Help     - This Display.                                                    
  2749. PFK Quit     - Exit Post(2) screen.                                             
  2750. PFK Edit     - Establishes a limited XEDIT session. When you come               
  2751.                from the Article screen you will see the entire article          
  2752.                is supplied.                                                     
  2753. PFK Send     - Will POST/MAIL the results of the edit session. You will         
  2754.                receive confirmation that your contribution was                  
  2755.                successful.                                                      
  2756.                                                                                 
  2757.                                                                                 
  2758.                                                                                 
  2759.                                                                                 
  2760.                                                                                 
  2761.                                                                                 
  2762.                                                                                 
  2763.                                                                                 
  2764.                                                                                 
  2765.                                                                                 
  2766. PREFER - Display Preferences Screen                                             
  2767. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  2768.          to NNR. If your are using the RXSOCKET version you may use             
  2769.          other TCPIP applications.                                              
  2770. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  2771.          current position to the command line.                                  
  2772.                                                                                 
  2773.                                                                                 
  2774.                                                                                 
  2775.                                                                                 
  2776.                                                                                 
  2777.                                                                                 
  2778.                                                                                 
  2779.                                                                                 
  2780.                                                                                 
  2781.                                                                                 
  2782.                                                                                 
  2783.                                                                                 
  2784. This is a simple mailer/poster.  It is comprised of two screens, Post           
  2785. Screen(1) and Post Screen(2).  This screen will be encountered when             
  2786. coming from the Article screen or when NNR detects that there is an             
  2787. unfinished article that was started sometime earlier.  From this                
  2788. screen you determine the course of action, you may direct the article           
  2789. to a colleague, follow-up to the news server or reply back to the               
  2790. sender.                                                                         
  2791.                                                                                 
  2792. On the SHLI/Group screen you will see an indicator of whether posting           
  2793. is an option or not (y=posting, m=moderated, n=noposting).  There are           
  2794. groups available for testing this activity; "alt.test" and                      
  2795. "misc.test" are two such groups.                                                
  2796.                                                                                 
  2797. The second screen you encounter will give you an opportunity to                 
  2798. change some of the captured information and in the case of forwarding           
  2799. the article you will be called upon to type in the recipient's                  
  2800. electronic address.                                                             
  2801.                                                                                 
  2802. PFK Help     - This Display.                                                    
  2803. PFK Quit     - Exit Post(1) screen.                                             
  2804. PFK Resume   - Allows you to continue an existing POSTing. This is              
  2805.                independent of the current article.                              
  2806. PFK Followup - Newly edited information to be sent back to the server           
  2807.                for POSTing.                                                     
  2808. PFK Mail     - Newly edited information to be directed to the local             
  2809.                electronic mail system (must fill in recipient).                 
  2810. PFK Reply    - Newly edited information to be directed to the creator           
  2811.                of an article (directed back to the "From:").                    
  2812. PFK ERASE    - Eliminate the previously edited POSTing to operate on            
  2813.                the current article.                                             
  2814.                                                                                 
  2815.                                                                                 
  2816.                                                                                 
  2817.                                                                                 
  2818.                                                                                 
  2819.                                                                                 
  2820. PREFER - Display Preferences Screen                                             
  2821. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  2822.          to NNR. If your are using the RXSOCKET version you may use             
  2823.          other TCPIP applications.                                              
  2824. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  2825.          current position to the command line.                                  
  2826. ERASE  - Eliminate the previously edited POSTing to operate on the              
  2827.          current article.                                                       
  2828.                                                                                 
  2829.                                                                                 
  2830.                                                                                 
  2831.                                                                                 
  2832.                                                                                 
  2833.                                                                                 
  2834.                                                                                 
  2835.                                                                                 
  2836.                                                                                 
  2837.                                                                                 
  2838. There are three ways to get to this screen.  The first is by                    
  2839. selecting the "Articles" PFK for a specific group from the SHLI/Group           
  2840. screen.  The second and third are via the Headers screen using the              
  2841. "Article" PFK and the "Selected" PFK, see the respective PFK help for           
  2842. each of the screens mentioned.                                                  
  2843.                                                                                 
  2844. Once you have succeeded in getting to this screen you may page through          
  2845. the article (PFK Forward, PFK Backward) and range through all the               
  2846. available articles (PFK Next, PFK Previous).  There is one                      
  2847. Preferences setting that limits the number of "Lines" NNR will allow,           
  2848. you may set this accordingly.                                                   
  2849.                                                                                 
  2850. From the Article Screen you may also "Post", "Print" or "Log" a                 
  2851. article, please see the PFK description for this screen for details.            
  2852.                                                                                 
  2853.                                                                                 
  2854.                                                                                 
  2855.                                                                                 
  2856. PFK Help     - This display.                                                    
  2857. PFK Next     - Read the next article in the sequence.                           
  2858. PFK Quit     - Exit Article screen.                                             
  2859. PFK Previous - Read the previous article in the sequence.                       
  2860. PFK PostMail - Initiates posting procedure. The group and subject are           
  2861.                passed to the posting screen along with the article.             
  2862. PFK HeadBody - Toggles between headers+body and body only.                      
  2863. PFK Backward - Scrolls backward one screen.                                     
  2864. PFK Forward  - Scrolls forward one screen.                                      
  2865. PFK Print    - Sends the article to the virtual printer.                        
  2866. PFK Rot13    - Translates screen using a character rotation method.             
  2867. PFK Log      - Logs article in NNRLOG NOTEBOOK.                                 
  2868. PFK NxtGroup - Moves to the next group in the SHLI list.                        
  2869.                                                                                 
  2870.                                                                                 
  2871.                                                                                 
  2872.                                                                                 
  2873.                                                                                 
  2874. PREFER - Display Preferences Screen                                             
  2875. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  2876.          to NNR. If your are using the RXSOCKET version you may use             
  2877.          other TCPIP applications.                                              
  2878. NGroup - Moves to the next group in the SHLI list (with articles).              
  2879. PGroup - Moves to the previous group in the SHLI list (with articles).          
  2880. LOG    - "LOG xyz" will log the current article into a notebook by the          
  2881.          name of "XYZ NOTEBOOK". If the header information is available         
  2882.          this article may be manipulated with Rice Mail/Mailbook.               
  2883.                                                                                 
  2884.                                                                                 
  2885.                                                                                 
  2886.                                                                                 
  2887.                                                                                 
  2888.                                                                                 
  2889.                                                                                 
  2890.                                                                                 
  2891.                                                                                 
  2892. The User Preferences Screen attempts to make NNR more useful in                 
  2893. irregular situations (normally none of the User configurable                    
  2894. parameters should need changing).  The Header Screen option is                  
  2895. changed by the Rotate PFK; the other values must be filled in.  Once            
  2896. any of the values are changed they will retain their setting for the            
  2897. duration of the NNR session or until changed again.  The values will            
  2898. be reset to the default on the next invocation of NNR.                          
  2899.                                                                                 
  2900. Articles/Group - used to determine the upper limit for the number of            
  2901.   articles collected on "Headers Screen". Default is 300 articles.              
  2902. Lines/Article - used to determine the upper limit for the number of lines       
  2903.   collected for an article on "Article Screen". Default is 1500 lines.          
  2904. Log/NoLog - you may switch between logging all outgoing mail/post and           
  2905.   not logging them. The default is "YES", log them.                             
  2906. Add Pseudo PHLI - used in conjunction with the Sub/UnS PFK on the SHLI          
  2907.   screen. The default is OFF, change this to any name and use the               
  2908.   Sub/UnS PFK to add groups to the newly defined PHLI.                          
  2909.                                                                                 
  2910. PFK Help     - This display.                                                    
  2911. PFK Quit     - Exit Preferences screen.                                         
  2912. PFK Rotate   - Range through possible configuration values.                     
  2913.                                                                                 
  2914.                                                                                 
  2915.                                                                                 
  2916.                                                                                 
  2917.                                                                                 
  2918.                                                                                 
  2919.                                                                                 
  2920.                                                                                 
  2921.                                                                                 
  2922.                                                                                 
  2923.                                                                                 
  2924.                                                                                 
  2925.                                                                                 
  2926.                                                                                 
  2927.                                                                                 
  2928. SUBset - Drop into a CMS subset. You must type "Return" to come back            
  2929.          to NNR. If your are using the RXSOCKET version you may use             
  2930.          other TCPIP applications.                                              
  2931. NULL   - Simply hitting the ENTER key will toggle the cursor from the           
  2932.          current position to the command line.                                  
  2933.                                                                                 
  2934.                                                                                 
  2935.                                                                                 
  2936.                                                                                 
  2937.                                                                                 
  2938.                                                                                 
  2939.                                                                                 
  2940.                                                                                 
  2941.                                                                                 
  2942.                                                                                 
  2943.                                                                                 
  2944.                                                                                 
  2945.                                                                                 
  2946. :READ  NNRLIST  ADDERRCK C2 UPDTS  06/21/92 13:09:41                            
  2947. ./ I 00068960          $ 69020 60                     06/21/92 12:57:14         
  2948.       if word(status,1)^='211' then                                     00048000
  2949.         do                                                              00049000
  2950.           say status                                                    00050000
  2951.           nntprc=NEWSQuit()                                             00051000
  2952.           nntprc=RXTermin()                                             00052000
  2953.           Exit(word(status,1))                                          00053000
  2954.         end                                                             00054000
  2955. :READ  NNRLIST  AUXLCL   C1 UPDTS  05/10/92 11:17:27                            
  2956. SITEFIX  * local configuration parameters go in sitefix                         
  2957. :READ  NNRLIST  AUXRXS   C1 UPDTS  08/03/92 14:23:10                            
  2958. LICENSE  * new MITRE license agreement                                          
  2959. VERS131  * add version number                                                   
  2960. ADDERRCK * add error checks                                                     
  2961. LSTORGRP * add LIST or GROUP option (article count)                             
  2962. FIXSORT  * speed up sort GILMART@lstc2vm.stortek.com                            
  2963. CLEANUP  * simplify test pattern code                                           
  2964. HISTORY                                                                         
  2965. :READ  NNRLIST  AUXRXT   C1 UPDTS  07/26/92 13:31:15                            
  2966. RXT131   * add rextcpip version number                                          
  2967. REXTCPIP * add rextcpip conversion routines                                     
  2968. :READ  NNRLIST  CLEANUP  C2 UPDTS  05/10/92 11:11:41                            
  2969. ./ R 00176000          $ 176490 490                   05/10/92 10:09:08         
  2970.         If bytes_in=0 | index(line,pattern)>0 then                      00176000
  2971. ./ R 00198000          $ 198490 490                   05/10/92 10:09:08         
  2972.         test=right(line,5)                                              00198000
  2973. :READ  NNRLIST  FIXSORT  C2 UPDTS  05/21/92 21:14:51                            
  2974. ./ R 00101000 00124000 $ 101990 990                   05/21/92 21:14:51         
  2975.    Do Gap = 797161 By 0 while Gap>1                                             
  2976.       Gap = Gap%3                                                               
  2977.       Do Scan = Gap+1 to list.0                                                 
  2978.          Vacant = Scan - Gap                                                    
  2979.          If list.Vacant>list.Scan Then Do                                       
  2980.             Temp = list.Scan                                                    
  2981.             list.Scan = list.Vacant                                             
  2982.             Do Bubble = Vacant-Gap to 1 By -Gap ,                               
  2983.                    While list.Bubble>Temp                                       
  2984.                list.Vacant = list.Bubble                                        
  2985.                Vacant = Bubble                                                  
  2986.                End Bubble                                                       
  2987.             list.Vacant = Temp                                                  
  2988.            End                                                                  
  2989.          End Scan                                                               
  2990.       End Gap                                                                   
  2991. :READ  NNRLIST  HISTORY  C2 UPDTS  08/03/92 14:22:46                            
  2992. ./ R 00005000 00009000 $ 6990 100                     05/10/92 09:51:00         
  2993. /* 05/09/92 S_1.3.0 (level set S_1.2.2e)                              */        
  2994. /*       * simplify test pattern code                                 */        
  2995. /*       * speed up sort GILMART@lstc2vm.stortek.com                  */        
  2996. /*       * add LIST or GROUP option (article count)                   */        
  2997. /*       * add error checks                                           */        
  2998. /*       * add version number                                         */        
  2999. /* 07/26/92  version *_1.3.1                                          */        
  3000. /* 08/03/92  add GENERAL PUBLIC LICENSE                               */        
  3001. :READ  NNRLIST  LICENSE  C2 UPDTS  12/15/92 06:17:38                            
  3002. ./ R 00011000 00025000 $ 11590 590                    08/03/92 14:21:42         
  3003. /**                                                                             
  3004.                 Copyright (C) 1991,1992  The MITRE Corporation                  
  3005.                                                                                 
  3006.                          GENERAL PUBLIC LICENSE                                 
  3007.                                                                                 
  3008. The MITRE Corporation provides this software to you without charge.             
  3009. It may be reproduced by you within the United States of America                 
  3010. provided all copyright notices are reproduced.  It cannot be made               
  3011. available to foreign governments unless done in accordance with                 
  3012. export control laws.                                                            
  3013.                                                                                 
  3014. This material may be reproduced by or for U. S. Government pursuant             
  3015. to the copyright license under the clause DFARS 252.227-7013.                   
  3016.                                                                                 
  3017. This software is provided "AS IS" and no warranties, expressed or               
  3018. implied, including but not limited to the implied warranties of                 
  3019. merchantability and fitness for a particular purpose, are made by The           
  3020. MITRE Corporation, it's officers, agents or employees.  You agree to            
  3021. indemnify and hold harmless The MITRE Corporation, it's officers,               
  3022. agents and employees from any and all costs and liability to third              
  3023. parties which will arise out of your use for this software                      
  3024.                                                                                 
  3025. **/                                                                             
  3026. :READ  NNRLIST  LSTORGRP C2 UPDTS  06/21/92 13:09:41                            
  3027. ./ R 00029000          $ 29090 90                     06/21/92 13:06:35         
  3028. parse arg arguments '(' options                                         00029190
  3029. ipaddr=arguments /* we should only have one */                          00029380
  3030. options=translate(options)                                              00029570
  3031. CoarseGrain=max(0,min(1,find(options,'LIST')))                          00029760
  3032. if CoarseGrain then                                                     00067490
  3033.   say 'Course Grain: Using server "LIST" command only!'                         
  3034. else                                                                            
  3035.   say 'Fine Grain: Using server "GROUP" command!'                               
  3036. ./ R 00067000 00070000 $ 67490 490                    06/21/92 13:06:35         
  3037. if ^CoarseGrain then                                                    00067490
  3038.   do                                                                    00067980
  3039.     do i=1 to list.0                                                    00068470
  3040.       status=STATUS_Response('GROUP' word(list.i,1))                    00068960
  3041.       list.i=word(list.i,1) word(status,4) word(status,3) word(list.i,4)00069450
  3042.     end                                                                 00069940
  3043.   end                                                                   00070430
  3044. :READ  NNRLIST  REXTCPIP C2 UPDTS  05/10/92 11:11:41                            
  3045. ./ R 00131000 00141000 $ 131990 990                   05/10/92 10:13:51         
  3046.   'NUCEXT REXTCPIP'                                            /*RXTcp*/00106990
  3047.   if rc = 1 then 'REXTCPIP'                                    /*RXTcp*/00107980
  3048.     socket = tcpOPEN(word(args,1),119,20)                      /*RXTcp*/00108970
  3049.   if tcprc ^= 0 then Return('-1 tcpopen '||tcprc)              /*RXTcp*/00109960
  3050.     'GLOBALV SETL SOCKET' socket                               /*RXTcp*/00110950
  3051.   status=STATUS_Response('')                                   /*RXTcp*/00111940
  3052. ./ R 00147000 00150000 $ 147790 790                   05/10/92 10:13:51         
  3053.   Call tcpCLOSE socket                                         /*RXTcp*/00122790
  3054.   'NUCXDROP REXTCPIP'                                          /*RXTcp*/00125160
  3055.   if tcprc ^= 0 then                                           /*RXTcp*/00123580
  3056.     Return('-1 tcpclose '||tcprc)                              /*RXTcp*/00124370
  3057. ./ R 00173000 00174000 $ 173590 590                   05/10/92 10:13:51         
  3058.         bytes_in = Socket('Read')                              /*RXTcp*/00148590
  3059.         If word(bytes_in,1)="-1" Then Return(bytes_in)         /*RXTcp*/00149180
  3060. ./ R 00195000 00196000 $ 195590 590                   05/10/92 10:13:51         
  3061.         bytes_in = Socket('Read')                              /*RXTcp*/00170490
  3062.         If word(bytes_in,1)="-1" Then Return(bytes_in)         /*RXTcp*/00170980
  3063. ./ R 00208000 00209000 $ 208590 590                   05/10/92 10:13:51         
  3064.   bytes_out = Socket('Write')                                  /*RXTcp*/00183590
  3065.   If word(bytes_out,1)="-1" Then Return(bytes_out)             /*RXTcp*/00184180
  3066. ./ I 00273000          $ 274000 1000                  05/10/92 10:13:51         
  3067. /**********************************************************************/00249000
  3068. /* Add REXTCPIP interface, use socket stuff layout.                   */00250000
  3069. /**********************************************************************/00251000
  3070. socket:procedure expose socket data errno                      /*RXTcp*/00252000
  3071. parse arg RorW                                                 /*RXTcp*/00253000
  3072.   If RorW='Read' then                                          /*RXTcp*/00254000
  3073.     do                                                         /*RXTcp*/00255000
  3074.       Call tcpRECEIVE Socket,'WAIT','BIN'                      /*RXTcp*/00256000
  3075.       errno=tcprc                                              /*RXTcp*/00257000
  3076.       If tcprc^=0 then                                         /*RXTcp*/00258000
  3077.         Return('-1 tcpRECIEVE '||tcprc)                        /*RXTcp*/00259000
  3078.       data=tcpline.1                                           /*RXTcp*/00260000
  3079.       Return(length(tcpline.1))                                /*RXTcp*/00261000
  3080.     end                                                        /*RXTcp*/00262000
  3081.   Else if RorW='Write' then                                    /*RXTcp*/00263000
  3082.     do                                                         /*RXTcp*/00264000
  3083.       Call tcpSEND Socket,data,'BIN'                           /*RXTcp*/00265000
  3084.       errno=tcprc                                              /*RXTcp*/00266000
  3085.       If tcprc^=0 then                                         /*RXTcp*/00267000
  3086.         Return('-1 tcpSEND '||tcprc)                           /*RXTcp*/00268000
  3087.       Return(0)                                                /*RXTcp*/00269000
  3088.     end                                                        /*RXTcp*/00270000
  3089.   Else Return('-1 Socket Unknown '||RorW)                      /*RXTcp*/00271000
  3090. return                                                         /*RXTcp*/00272000
  3091. :READ  NNRLIST  RXT131   C2 UPDTS  07/26/92 13:32:11                            
  3092. ./ R 00029310          $ 29320 10                     07/26/92 13:31:37         
  3093. say 'NNRLIST Version R_1.3.1'                                           00029310
  3094. :READ  NNRLIST  SAMPLEFX C2 UPDTS  05/10/92 11:11:42                            
  3095. ./ R 00033000          $ 33490 490                    05/10/92 09:52:59         
  3096. 'GLOBALV SETL IPADDR 000.000.000.000'                                   00033000
  3097. :READ  NNRLIST  VERS131  C2 UPDTS  07/26/92 13:32:11                            
  3098. ./ I 00029270          $ 29310 40                     07/26/92 13:30:26         
  3099. say 'NNRLIST Version S_1.3.1'                                                   
  3100. :READ  RXSOC    CNTRL    C1 UPDTS  05/10/92 11:12:23                            
  3101. TEXT MACS ALLMACRO VSPASCAL CMSLIB DMSSP OSMACRO OSMACRO1                       
  3102. LCL AUXLCL                                                                      
  3103. RXS AUXRXS                                                                      
  3104. :READ  RXTCP    CNTRL    C1 UPDTS  05/10/92 11:12:23                            
  3105. TEXT MACS ALLMACRO VSPASCAL CMSLIB DMSSP OSMACRO OSMACRO1                       
  3106. LCL AUXLCL                                                                      
  3107. RXT AUXRXT                                                                      
  3108. RXS AUXRXS                                                                      
  3109.